728x90
오버로딩(Overloading)
- 이름이 같아도 매개변수 타입, 개수, 순서를 다르게 해서 같은 이름이더라도 여러 개의 함수를 정의할 수 있는 것
- 프로그램의 유연성을 높이고, 코드를 깔끔하게 만들어 준다.
- 같은 클래스 내에서 사용됨
오버라이딩(Overriding)
- 부모(상위) 클래스에서 가지고 있는 메소드를 자식(하위) 클래스가 재정의(override)하는 것 → 상속 관계에서 사용
- ex.) 상속 관계에서의 오버라이딩, 인터페이스를 구현한 구체 클래스에서의 메소드 오버라이딩
- 메소드 오버라이딩 조건
- 메소드 이름, 매개변수, 반환 타입 → 같아야 한다.
- 접근 제어자 → 상위 클래스 메소드보다 더 제한적이면 안된다.
모든 외부 호출 막음 같은 패키지 안에서 호출은 허용 같은 패키지 안에서 호출은 허용 / 패키지가 달라도 상속 관계의 호출은 허용 모든 외부 호출 허용 전부 다 막음 패키지 패키지 + 상속 전부 다 열림 - 예외 → 상위 클래스 메소드보다 더 많은 체크 예외를 throws로 선언할 수 없다.
- static, final, private 키워드가 붙은 메소드 → 오버라이딩 불가능
- 생성자 → 오버라이딩 불가능
- private → default → protected → public
728x90
'CS > 그외' 카테고리의 다른 글
라이브러리 vs 프레임워크 (1) | 2024.07.16 |
---|---|
static 키워드 (0) | 2024.07.12 |
클래스, 객체, 인스턴스의 차이가 뭔가요? (0) | 2024.07.10 |
동기, 비동기 (0) | 2024.04.29 |