Sie sollten Methoden immer mit Anmerkungen versehen, @Override
wenn sie verfügbar sind.
In JDK 5 bedeutet dies, Methoden von Oberklassen zu überschreiben, in JDK 6 und 7 bedeutet dies, Methoden von Oberklassen zu überschreiben und Methoden von Schnittstellen zu implementieren. Der Grund dafür ist, wie bereits erwähnt, dass der Compiler Fehler abfangen kann, wenn Sie glauben, eine Methode zu überschreiben (oder zu implementieren), aber tatsächlich eine neue Methode definieren (andere Signatur).
Das Beispiel equals(Object)
vs. equals(YourObject)
ist ein Standardbeispiel, aber das gleiche Argument kann für Schnittstellenimplementierungen angeführt werden.
Ich würde mir vorstellen, dass es nicht zwingend erforderlich ist, Implementierungsmethoden für Schnittstellen mit Anmerkungen zu versehen, weil JDK 5 dies als Kompilierungsfehler gekennzeichnet hat. Wenn JDK 6 diese Anmerkung obligatorisch machen würde, würde dies die Abwärtskompatibilität beeinträchtigen.
Ich bin kein Eclipse-Benutzer, aber in anderen IDEs (IntelliJ) wird die @Override
Anmerkung nur beim Implementieren von Schnittstellenmethoden hinzugefügt, wenn das Projekt als JDK 6+ -Projekt festgelegt ist. Ich würde mir vorstellen, dass Eclipse ähnlich ist.
Ich hätte es jedoch vorgezogen, eine andere Anmerkung für diese Verwendung zu sehen, möglicherweise eine @Implements
Anmerkung.