Antworten:
@Override war ursprünglich nicht in der Sprache. Wenn das Bedürfnis bestand, es hinzuzufügen, war es einfacher, einen generischen Mechanismus (Anmerkungen) zu verwenden, als der Sprache ein neues Schlüsselwort hinzuzufügen. Das Hinzufügen eines neuen Schlüsselworts ist immer eine inkompatible Änderung, da Programme, die diese Wörter als Bezeichner verwenden, beschädigt werden können.
In Sprachen, die ab dem ersten Tag einen Override-Marker hinzufügen, handelt es sich häufig um ein Schlüsselwort (Beispiele sind Kotlin und Scala). In Java ging es darum, mit älteren Java-Versionen, die keinen Override-Marker hatten, abwärtskompatibel zu bleiben.
enum
dass das hinzugefügte Schlüsselwort älteren Code beschädigen würde. Weitere wichtige
Sie benötigen die @ Override-Annotation nicht , um das Verhalten tatsächlich zu überschreiben. Es handelt sich um eine Anmerkung, da lediglich ein Kontext der Methodenabsicht für den Compiler hinzugefügt wird, ohne die Methode selbst zu ändern.
Ohne die Anmerkung können Sie beabsichtigen , die Funktionalität zu überschreiben, dies jedoch versehentlich nicht tun (indem Sie eine etwas andere Signatur verwenden). Durch Hinzufügen der Anmerkung wird der Compiler angewiesen, einen Fehler zu generieren, wenn diese Methode das Verhalten nicht überschreibt.
Insofern macht es als Annotation durchaus Sinn.