Annotation @Override

Status
Nicht offen für weitere Antworten.

reibi

Top Contributor
Hallo zusammen

Hab mich grad gefragt weshalb es eine Annotation namens "@Override" gibt, die für implementierte Methoden gedacht ist, welche ein Interface vorgibt.

Also es geht ja auch ohne!
Mein Eclipse schreibt das automatisch vor die Methoden, wenn ich die Methodern des Interfaces durch drücken von "Quickfix" implementiere.

Für was ist das gut?

Danke und Gruss ;-)
 

thE_29

Top Contributor
Wenn du dich beim Methodenname verschreibst, regt sich das Annoation auf, da nichts OVERRIDED wird!

Also nur um Fehler vorzubeugen..
 

Ebenius

Top Contributor
Bzw. wenn Du später eine Methode der Super-Klasse (oder des Interface's) umbenennst, dann warnt Dich der Compiler, dass die implementierende/überschreibende Methode da etwas erwartet was nicht mehr den Tatsachen entspricht.

Diese Annotation hat natürlich auch eine API-Doc: Override

Ebenius
 

reibi

Top Contributor
Mein Eclipse regt sich auch so auf, wenn ich das vergessen sollte.
Natürlich kann man nicht davon ausgehen, dass man Eclipse, Netbeans oder ne andere IDE benutzt, die sich dabei aufregen.

Nehmen wir an ich schreibe die Klasse in notepad oder vi; was passiert denn dann? Dann regt er sich beim compilieren auf, dass diese nicht implementierte Methode noch fehlt.

Ob das durch den Annotationsmechanismus erfolgt oder durch einen Compilierungsfehler, welcher feststellt, dass es eine unimplementierte Methode gibt ist ja eigentlich egal... oder?
 

hdi

Top Contributor
Ob das durch den Annotationsmechanismus erfolgt oder durch einen Compilierungsfehler, welcher feststellt, dass es eine unimplementierte Methode gibt ist ja eigentlich egal... oder?

Wenn die Methode kein @Override hat wird es sicherlich nicht zu einem Compile-Fehler
kommen. Wieso denn, du hast lediglich eine neue Methode geschrieben.
Andersrum genauso: Solange die Methode nicht abstrakt ist, wird es auch keinen Compile-Fehler
geben wenn du sie in der Subklasse nicht überschreibst.

Von daher macht diese Annotation Sinn, vorallem wenn man mit nem Notepad arbeitet.
Denn nur dann kriegste nen Compile-Error

edit: Sorry ich seh grad ich hab deinen Beitrag falsch verstanden. Du sagst ja genau das gleiche ;)
 

Ebenius

Top Contributor
reibi Du Faulpelz. :D

Meine Klasse: [HIGHLIGHT="Java"]public class OverrideTest {

@Override
public void toInteger() {
System.out.println("Nope");
}
}[/HIGHLIGHT]

Meine Shell:
Code:
$ javac OverrideTest.java
OverrideTest.java:28: method does not override or implement a method from a supertype
  @Override
  ^
1 error
Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G @PostConstruct Annotation nicht mehr gültig ? Allgemeine Java-Themen 7
S Validation Annotation Funktionsparameter vs Funktion vs Attribut Allgemeine Java-Themen 0
S Eclipse Annotation Processor in Eclipse einbinden Allgemeine Java-Themen 0
N Automatisches einfügen einer selbst generierten ID in Klasse mit Annotation Allgemeine Java-Themen 8
X Eigene Annotation - mit Bedingung für ganze Klassen oder Methoden Allgemeine Java-Themen 2
6 Annotation Allgemeine Java-Themen 1
A Annotation einer Subklasse im static-Block auslesen. Allgemeine Java-Themen 6
Schandro Annotation vs Javadoc bei Konstanten Allgemeine Java-Themen 2
G konstanter String[] laesst sich nicht in Annotation nutzen Allgemeine Java-Themen 2
S Annotation für "NativeAccess" Allgemeine Java-Themen 6
T Annotation oder Markerinterface? Allgemeine Java-Themen 10
Q Schnittstelle/Abstrakte Klasse schreibt Annotation vor? Allgemeine Java-Themen 4
T Klassen Override Problem Allgemeine Java-Themen 7
L Eclipse Editieren des Code templates für Override methods Allgemeine Java-Themen 2
G Override String.contains Allgemeine Java-Themen 2
S Override will nicht funktionieren :/ Allgemeine Java-Themen 2
R Fehler:method does not override a method from its superclass Allgemeine Java-Themen 3
T Umstellung von Java6 auf 5 - @Override ist nun ein Fehler! Allgemeine Java-Themen 14

Ähnliche Java Themen


Oben