문제

Java에서 Virtual 방법을 재정의 할 때 @override 주석을 사용하는 것이 권장되지만 추상 방법을 구현하면 어떻게됩니까? 그런 다음 @override를 사용해야합니까?

도움이 되었습니까?

해결책

나는 사용을 선호하는 경향이있다 @Override 이 경우 슈퍼 클래스가 변경되면 (메소드를 완전히 제거하거나, 서명을 변경하는 등) 메소드가 서브 클래스에 표시되도록합니다.

유일한 차이점은 주석이 없으면 슈퍼 클래스/인터페이스의 메소드가 변경되거나 제거되면 해당 클래스의 "정상적인"방법이된다는 것입니다. 따라서 계약을 이행하기 위해 메소드를 구현하는 경우 주석을 추가해야합니다. 그리고 구현 된 인터페이스 또는 상속 된 추상 방법에 관계없이 클래스에서 메소드가 의미가 있다면 추가해서는 안됩니다.

다른 팁

예 - 다시, 컴파일러에게 "여기서 방법을 무시하고 싶습니다. 그렇지 않습니다 해당하는 방법으로, 나는 실수를 저지르고 그것에 대해 말하고 싶다! "

개인적으로 나는 이것이 언어의 일부보다는 (C#에있는 것처럼)에 대한 주석이라는 것이 유감이라고 생각하지만 물론 이것은 후시의 이점이라고 생각합니다.

예. 효과적인 Java의 Joshua Bloch가 권장합니다.

실제로 Joshua Bloch, 178 페이지의 마지막 단락에서 효과적인 Java (2 판), 초록 방법을 사용하여 Override 컴파일러가 어쨌든 오류가 발생하기 때문에 주석. 그러나 "그렇게하는 것은 해롭지 않습니다".

전략을 선택하고 일관되게 고수하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top