8 Stimmen

Ist es obligatorisch, geerbte Methoden mit @Override zu kennzeichnen?

Mögliches Duplikat:
Wann verwenden Sie die @Override-Anmerkung von Java und warum?

Neuling Frage - Ich schreibe meine erste Android-App (es ist meine 2. Java-App). Ich habe bemerkt, dass in den Beispielen die onCreate() Methode hat die @Override Anmerkung, aber ich habe diese Anmerkung nicht verwendet und sie scheint gut zu funktionieren.

Ist es nur gute Praxis, die @Override Anmerkung oder bereite ich mir selbst Probleme. Was ist mit den anderen geerbten Methoden - onPause usw.?

13voto

Dave Newton Punkte 156303

Les @Override Annotation ermöglicht es dem Compiler sicherzustellen, dass Sie tatsächlich eine Methode überschreiben oder eine Schnittstellenmethode implementieren (Java 6+). Dies kann eine Reihe von einfachen Fehlern vermeiden, wie z. B. das Verwechseln einer Methodensignatur und das Überschreiben einer Methode, von der man glaubt, dass man sie überschreibt.

Es ist nicht obligatorisch, aber eine gute Idee, und es ist eine kostenlose Hilfe vom Compiler.

12voto

Johan Sjöberg Punkte 45671

Es ist nur eine gute Praxis, die

  • hilft Entwicklern zu sehen, welche Methoden überschrieben werden
  • lässt den Compiler prüfen, ob die Signatur mit der überschriebenen Methode konform ist

3voto

Bhesh Gurung Punkte 49812

Wenn Sie wirklich ein Neuling sind, dann müssen Sie über die Kompilierzeit (wenn Sie Ihren Quellcode kompilieren) und die Laufzeit (wenn Sie Ihre kompilierte Klasse ausführen) Bescheid wissen.

Angenommen, Sie müssen eine Methode überschreiben, aber beim Überschreiben der Methode haben Sie eine falsche Singnatur angegeben (anders als die ursprüngliche).

Nun, in einem solchen Fall, wenn Sie das verwendet haben @Override Annotation, dann wird der Compiler feststellen, dass Sie die Methode nicht überschreiben, auch wenn Sie das denken.

Wenn Sie diese Anmerkung jedoch nicht verwenden, wird es kompiliert und das Endergebnis ist ein Fehler in der Laufzeit.

1voto

AlexR Punkte 111534

Ich denke, dass dies nicht der Fall ist. nur eine gute Praxis, aber eine sehr gute Praxis. Zusätzlich zu einer Art Erinnerung an den Programmierer hilft es Ihnen auch, nicht gestorbenen Code in Ihrem Programm zu lassen und oft dumme Fehler zu vermeiden.

Wenn Sie zum Beispiel die Methode foo() Ihrer Basisklasse und entfernen Sie dann diese Methode aus der Basisklasse. Wenn Sie nicht @Override Annotation besteht die Möglichkeit, dass Code, auf den nicht mehr zugegriffen werden kann, noch in Unterklassen vorhanden ist. Aber wenn Sie die @Override Sie erhalten Zusammenstellung Fehler, der Ihnen signalisiert, dass Sie etwas mit dem Code machen müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X