인터페이스의 메소드를 구현할때 @Override를 붙여야하나요?


발생하는 문제 및 실행환경

인터페이스의 메소드를 구현할때 @Override를 붙여야하나요?

자바 문서에서 @Override에 대한 자료를 읽어보면

"@Override는 메소드를 정의할때 상위 클래스의 메소드를 오버라이드한다는것을 나타냅니다. @Override가 붙었는데 상위 클래스의 메소드를 오버라이드 하지 않았다면 컴파일러는 에러메세지를 보낼 것 입니다."

라고 나와있는데요. 저는 인터페이스가 슈퍼클래스라고 생각하지 않는데 아닌가요?

  • 2016년 01월 18일에 작성됨

조회수 211


1 답변


좋아요
0
싫어요
채택취소하기

웬만하면 @Override를 붙이세요. 그래야 밑에 같은 실수를 예방할수있어요

class C {
    @Override
    public boolean equals(SomeClass obj){
        // code ...
    }
}

위 코드는 public boolean equals(Object ojb)를 제대로 오버라이딩하지 않기 때문에 컴파일 되지 않아요.

인터페이스(java 1.6이상)의 메소드를 구현할때나 상위 클래스의 메소드를 오버라이딩할때 @Override를 사용해야 해요.


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close