Kann eine nicht-abstrakte Klasse erweitert werden (geerbt von) in Java?
Nicht die Klasse haben müssen-das abstract-Schlüsselwort vor es?
Oder braucht es Nicht zu haben, nicht implementierte (abstrakte) Methoden?
Kann jeder normale Klasse erweitert werden?
- Siehe docs.oracle.com/javase/tutorial/java/javaOO/classes.html
- was passiert, wenn Sie versucht es 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, alle Methoden, die nicht final sind (statische ist auch eine etwas andere form der rest), außer Kraft gesetzt werden können, es sei denn, die Klasse selbst deklariert ist endgültig. Abstrakte Methoden werden nur verwendet, wenn Sie keine Implementierung in der Basisklasse.
Ja 🙂 es sei denn, es hat den final-modifier.
Nein, es braucht nicht auf das Wort abstract das Wort abstract einfach nicht erlauben, erstellen Sie eine Instanz der Klasse direkt, wenn Sie das Wort abstract können Sie nur erstellen Sie eine Instanz der Klassen, die Sie erweitern, dass abstrakte Klasse.
Ja, Sie können eine Klasse erweitern, ohne Sie benötigen, um definiert werden als abstrakte. Was dies bedeutet ist, dass Sie werden überschreiben von Methoden. Zum Beispiel könnten Sie eine Klasse
dann,
Wird dies bedeuten, dass Sie können ändern, das ursprüngliche Verhalten der übergeordneten Klasse.
Referenz:
http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
Als andere haben auch gesagt, ja - aber es ist gute Praxis, um zu vermeiden, tun also, wenn Sie können möglicherweise helfen, die es, weil Sie am Ende mit dem, was ist bekannt als die fragile base class problem mehr leicht.
Ja, aber wenn die Klasse ist als final markiert, es kann nicht verlängert werden.
Gibt es einige Konzept-Verwirrungen hier. Nicht implementierte Methoden befinden sich in einer Schnittstelle, und Sie können implementieren Schnittstelle.
Erweitern zu können, jede Klasse, solange es nicht endgültig.
Edit: Was ich sagen wollte, dass es besser ist, zu setzen Implementierte Methoden in interfaces als auch. Sorry für die schlechte Formulierung. Abstrakte Klassen können nicht-implementierte Methoden sowie, obwohl sein, Sie werden am Ende mit einer komplexen und starren Hierarchie.
.