** 오버라이딩의 정의와 필요성에 대해 설명하시오
오버라이딩이란 상속받은 부모 관계의 클래스의 메서드와 시그니처(이름, 파라미터 등)가
완벽하게 동일한 메서드를 새롭게 재정의하는 것이며, 자식 클래스가 최대한 상속받은 메서드를 활용할 수 있도록 하는 것
오버라이딩 단축키 : Alt + Shift + S + v
자동으로 오버라이딩을 하면 오버라이딩 된 메서드 위에 '@Override'라는 어노테이션(Annotation, 주석)이 붙는데
이 주석이 붙는 이유는 코딩의 실수를 방지하기 위함이다.
이 주석은 컴파일 시 오버라이딩 된 메서드 코드를 검증하는데 오버라이딩이 실제로 시행되지 않았다면
에러를 발생시킨다.
[ 오버라이딩의 조건 ]
1. 상속이 필수로 전제되어야 함
2. 메서드 시그니처 (이름, 파라미터의 타입 및 갯수, 리턴 타입) 가 100% 동일해야 함
3. 접근제한자는 슈퍼클래스의 메서드와 같거나 넓어야 함 (확대만 가능, >=)
4. 예외 클래스 사용 범위는 축소만 가능함
5. private, static, final 키워드가 사용된 메서드는 오버라이딩 불가
예문
class Parent {
public void parentPrn() {
System.out.println("슈퍼클래스의 parentPrn()");
}
}
class Child extends Parent {
@Override
public void parentPrn() {
System.out.println("서브클래스에서 오버라이딩 된 parentPrn()");
}
}
'BackEnd > Java' 카테고리의 다른 글
같은 참조 타입인지 확인하는 instanceof 연산자 (0) | 2020.03.16 |
---|---|
레퍼런스 형변환 (업캐스팅, 다운캐스팅) (0) | 2020.03.16 |
접근제한자 (0) | 2020.03.16 |
상속 (Inheritance) (0) | 2020.03.16 |
기본형 변수와 참조형 변수의 차이 (0) | 2020.03.16 |