메소드 오버라이딩(method overriding)이란?
- 상속 관계에 있는 부모 클래스에서 이미 정의된 메소드를
자식 클래스에서 같은 시그니쳐를 갖는 메소드로 다시 정의하는 것 - 상속받은 부모 클래스의 메소드를 재정의하여 사용하는 것
오버라이딩의 조건
- 메소드의 선언부는 기존 메소드와 완전히 같아야 합니다.
- 메소드의 반환 타입은 부모 클래스의 반환 타입으로
형변환할 수 있는 타입이라면 변경할 수 있다.
- 메소드의 반환 타입은 부모 클래스의 반환 타입으로
- 부모 클래스의 메소드보다 접근 제어자를 더 좁은 범위로 변경할 수 없다.
- 부모 클래스의 메소드보다 더 큰 범위의 예외를 선언할 수 없다.