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