Java에서 @Override는 무엇입니까?
@Override
컴파일러가 수퍼 클래스에 해당 메서드가 있는지 확인하는 것 외에 다른 메서드에 주석을 달아야하는 이유가 있습니까?
설명했듯이 @Override는 메서드가 재정의되고 있는지 확인하는 컴파일 타임 검사를 만듭니다. 이것은 재정의를 시도 할 때 어리석은 서명 문제가 없는지 확인하는 데 매우 유용합니다.
예를 들어, 다음과 같은 오류가 발생했습니다.
public class Foo {
private String id;
public boolean equals(Foo f) { return id.equals(f.id);}
}
이 클래스는 작성된대로 컴파일되지만 equals 메소드에 @Override 태그를 추가하면 Object의 equals 메소드를 재정의하지 않으므로 컴파일 오류가 발생합니다. 이것은 단순한 오류이지만 노련한 개발자조차도 눈을 피할 수 있습니다.
컴파일러를 검사 할뿐만 아니라 유용하게 만들기에는 충분합니다. 또한 개발자의 의도를 문서화합니다.
예를 들어, 메서드를 재정의하지만 형식 자체에서 사용하지 않는 경우 나중에 코드에 오는 누군가가 왜 그것이 왜 존재하는지 궁금해 할 수 있습니다. 주석은 그 목적을 설명합니다.
아니, 당신은 그것을 거의 못 박았습니다.
@Override
컴파일러에게 의도를 알려줍니다. 메소드에 태그를 지정 @Override
하면 수퍼 클래스 (또는 Java 6의 인터페이스)에서 무언가를 재정의하려는 것입니다. 좋은 IDE는없이 메서드를 재정의하는 모든 메서드에 플래그를 지정하는 데 도움이되므로이 @Override
둘을 조합하면 원하는 작업을 수행하는 데 도움이됩니다.
아니요-가독성도 향상된다는 점을 제외하면 (즉, IDE에서 사용하는 모든 표시기에 추가하여 메서드가 수퍼 클래스의 선언을 재정의하는 것을 쉽게 찾을 수 있습니다)
참고 URL : https://stackoverflow.com/questions/561365/what-is-override-for-in-java
'Program Tip' 카테고리의 다른 글
Visual Studio 2015에서 DNX / DNVM을 수정하는 방법은 무엇입니까? (0) | 2020.12.12 |
---|---|
고온 및 저온 관측 가능 : '고온'및 '저온'연산자가 있습니까? (0) | 2020.12.12 |
Vim 정규식 역 참조 (0) | 2020.12.12 |
"HTML"페이지의 "HEAD"요소 외부에 CSS 스타일을 선언 하시겠습니까? (0) | 2020.12.12 |
Windows에서 node.js를 업그레이드하는 방법은 무엇입니까? (0) | 2020.12.12 |