item 40) @Override 어노테이션을 일관되게 사용하라

@Override 어노테이션

  • 상위 타입의 메서드를 재정의했음을 나타낸다.

  • 메서드 선언에만 달 수 있으며, 일관되게 사용하면 여러 가지 버그들을 예방할 수 있다.

장점

  • Java8에서 디폴트 메서드를 지원하므로, 인터페이스의 추상 메서드를 구현한 메서드에도 @Override를 붙여주면 메서드의 시그니처가 올바른지 확인할 수 있다.

  • 재정의 하는지 다중정의 하는지 확실하게 구분할 수 있다.

  • 실수로 추가한 메서드를 확인하기 위해 추상 클래스나 인터페이스에서는 상위 클래스나 상위 인터페이스의 메서드를 재정의하는 모든 메서드에 @Override를 붙여주자.

@Override 어노테이션이 필요 없는 경우

  • 구체 클래스에서 상위 클래스의 추상 메서드를 재정의할 때는 @Override를 달지 않아도 된다. 구체 클래스인데 아직 구현하지 않은 추상 메서드가 있다면 컴파일러가 이를 알려주기 때문이다.

  • 하지만 @Override를 일괄적으로 달아주어도 된다.

Last updated