View

반응형

@Override 애너테이션은 상위 타입의 메서드를 재정의했음을 나타낸다. 메서드 선언에만 달 수 있으며, 일관되게 사용하면 여러 가지 버그들을 예방할 수 있다.

 

@Override는 의도를 명확히 나타낸다.

@Override 애너테이션을 달아줌으로써 '재정의한다.'라는 의도를 명확히 나타낼 수 있다. 또한, 코드를 잘못 작성(Overriding이 아닌 Overloading)했을 경우 컴파일러가 잘못된 부분을 명확히 알려준다.

 

@Override를 달지 않아도 되는 단 하나의 예외

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

하지만 @Override를 일괄적으로 다는 게 좋아 보인다면 @Override를 달아줘도 상관없다.

 

@Override를 붙여주는게 좋은 이유

Java8에서 디폴트 메서드를 지원하기 시작하면서, 인터페이스의 추상 메서드를 구현한 메서드에도 @Override를 붙여주는 게 좋다. 이렇게 하면 메서드의 시그니처가 올바른지 재차 확신할 수 있기 때문이다.

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

그러니 상위 클래스의 메서드를 재정의하려는 모든 메서드에 @Override 애너테이션을 달자.

반응형
Share Link

인기 글

최신 글

전체 방문자

Today
Yesterday