Ви завжди повинні коментувати методи, @Override
якщо вони доступні.
У JDK 5 це означає переосмислення методів надкласових класів, у JDK 6 та 7 означає переосмислення методів надкласових класів та реалізацію методів інтерфейсів. Причина, як згадувалося раніше, полягає в тому, що вона дозволяє компілятору вловлювати помилки там, де, на вашу думку, ви переосмислюєте (або реалізуєте) метод, але насправді визначаєте новий метод (інша підпис).
Приклад equals(Object)
порівняння equals(YourObject)
- це стандартний випадок, але такий же аргумент можна зробити і для реалізації інтерфейсу.
Я б міг уявити, що причина, по якій не потрібно коментувати реалізацію методів інтерфейсів, полягає в тому, що JDK 5 позначив це як помилку компіляції. Якщо JDK 6 зробив цю анотацію обов'язковою, вона порушила б сумісність назад.
Я не користувач Eclipse, але в інших IDE (IntelliJ) @Override
анотація додається лише при реалізації методів інтерфейсу, якщо проект встановлений як проект JDK 6+. Я б міг уявити, що затемнення схоже.
Однак я хотів би побачити іншу примітку для цього використання, можливо, @Implements
примітку.