Search
Duplicate
📪

Overriding

태그
개념
정의
상위 항목
하위 항목

메서드 오버라이딩이란?

조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것이다.

장점

자식 클래스가 상속받은 내용과는 다르게 동작해야하는 경우, 원하는 동작으로 재정의하는 것이다.
말 그대로 덮어쓰는 것!

조건

메서드의 이름이 같아야 한다.
매개변수가 같아야 한다.
반환타입이 같아야 한다.
→ 시그니처가 완전히 같아야 한다. 오버라이딩은 메소드의 구현만을 재정의하는 것이기 때문이다.

주의사항

접근 제어자를 기존 메서드보다 좁은 범위로 변경할 수 없다.
예외는 기존 메서드의 예외보다 더 포괄적으로 선언할 수 없다.
인스턴스 메서드라면 static 키워드를 붙일 수 없다.
그 반대도 마찬가지다.

@Override 어노테이션

자바가 기본으로 제공하는 어노테이션으로 상속받은 메서드를 재정의했음을 의미한다.
구체 클래스가 상위 클래스의 추상 메서드를 재정의하는 경우, 굳이 필요하진 않지만 일관성을 위해 달아두는 것이 좋다고 생각한다.
인터페이스의 메서드를 재정의하는 경우도 가능하다. 인터페이스의 디폴트 메서드를 재정의하려고 하는건 아닌지 확인할 수 있는 방법이 되었다.