Program Tip

Java에서 @Override는 무엇입니까?

programtip 2020. 12. 12. 12:17
반응형

Java에서 @Override는 무엇입니까?


중복 가능성 :
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

반응형