본문 바로가기
JAVA/Effective Java

item 40. @Override 애너테이션을 일관되게 사용하라

by Garonguri 2022. 6. 12.
728x90

 

@Override 애너테이션을 알고 있을 것이다.

메서드 선언부에 다는 상위 타입의 메서드를 재정의할 때 사용하는 애너테이션이다.

 

구체 클래스에서 상위 클래스의 추상 메서드를 재정의할 때를 제외하고는,
상위 클래스의 메서드를 재정의하려는 모든 메서드에 @Override 애너테이션을 달자.

추상 메서드는 구체 클래스인데 아직 구현하지 않은 메서드가 남아있다면 컴파일러가 알려주기 때문에 굳이 애너테이션을 달지 않아도 된다.

 


IDE를 사용하면 조금 더 편하게 애너테이션을 달 수 있다. 

메서드에 애너테이션이 달려있지 않다면 경고를 주기도 하고... 그렇다.

 

@Override 애너테이션은 클래스 뿐만 아니라 인터페이스의 메서드를 재정의할 때도 사용할 수 있다.

이 때도 애너테이션은 꼭 다는 습관을 갖도록 하자!

 

구현하려는 인터페이스에 디폴트 메서드가 없다면, 이를 구현한 메서드에서는 @Override를 생략하면 조금 더 깔끔하다.

 


추상 클래스, 인터페이스에서는 상위 클래스나 상위 인터페이스의 메서드를 재정의하는 모든 메서드에 @Override를 달아라.

구체 클래스든, 추상 클래스든 마찬가지이다.

 

아까 예외를 말했는데 다시 한번 말하자면

구체 클래스에서 상위 클래스의 추상 메서드를 재정의할 때를 제외하고는,
상위 클래스의 메서드를  재정의하려는 모든 메서드에 @Override 애너테이션을 달자.

끝!

728x90

댓글