Zawsze powinieneś adnotować metody, @Override
jeśli są dostępne.
W JDK 5 oznacza to nadpisywanie metod nadklas, w JDK 6, a 7 oznacza nadpisywanie metod nadklas i wdrażanie metod interfejsów. Powodem, jak wspomniano wcześniej, jest to, że pozwala on kompilatorowi wychwytywać błędy, gdy uważasz, że przesłonisz (lub implementujesz) metodę, ale w rzeczywistości definiujesz nową metodę (inną sygnaturę).
equals(Object)
Porównaniu z equals(YourObject)
przykładem jest standardowym przykładem, ale to samo można powołać się na implementacji interfejsu.
Wyobrażam sobie, że adnotacja metod implementacji interfejsów nie jest obowiązkowa, ponieważ JDK 5 oznaczył to jako błąd kompilacji. Jeśli JDK 6 uczyni tę adnotację obowiązkową, złamałoby to kompatybilność wsteczną.
Nie jestem użytkownikiem Eclipse, ale w innych IDE (IntelliJ) @Override
adnotacja jest dodawana tylko podczas implementacji metod interfejsu, jeśli projekt jest ustawiony jako projekt JDK 6+. Wyobrażam sobie, że Eclipse jest podobny.
Wolałbym jednak zobaczyć inną adnotację dla tego zastosowania, być może @Implements
adnotację.