Kann eine abstrakte Java-Klasse einen Konstruktor haben?
Kann eine abstrakte Java-Klasse einen Konstruktor haben?

Video: Kann eine abstrakte Java-Klasse einen Konstruktor haben?

Video: Kann eine abstrakte Java-Klasse einen Konstruktor haben?
Video: Abstrakte Klasse vs. Interface in Java 2024, Kann
Anonim

Ja, und abstrakte Klasse kann haben ein Konstrukteur in Java . Du kann entweder explizit angeben a Konstrukteur zu abstrakte Klasse oder wenn nicht, der Compiler Wille Standard hinzufügen Konstrukteur ohne Argument in abstrakte Klasse . Das gilt für alle Klassen und es gilt auch für ein abstrakte Klasse.

Kann ein Konstruktor folglich in Java abstrakt sein?

Du kann habe keine abstrakter Konstruktor , wie abstrakt bedeutet, dass Sie die Implementierung dafür irgendwann in Ihrer Unterklasse bereitstellen müssen. Aber du kannst nicht überschreiben Konstrukteur . Dort Wille Es hat keinen Sinn, eine zu haben abstrakter Konstruktor : Du Wille ruf immer an Konstrukteur der Unterklasse und nicht der Basisklasse.

Wie rufen Sie auf ähnliche Weise einen abstrakten Klassenkonstruktor auf? Sie können a. definieren Konstrukteur in einem (n abstrakte Klasse , aber Sie können dieses Objekt nicht konstruieren. Konkrete Unter- Klassen kann (und muss) Anruf einer der Konstrukteure definiert im abstrakt Elternteil Klasse . Du kannst nicht Anruf ein abstrakter Klassenkonstruktor mit einem Klasse Instanzerstellungsausdruck, d.h.

Ebenso fragen die Leute, warum eine abstrakte Klasse einen Konstruktor hat?

EIN Konstrukteur in Java "baut" das Objekt nicht wirklich, es wird verwendet, um Felder zu initialisieren. Stellen Sie sich vor, Ihr abstrakte Klasse hat Felder x und y, und dass sie immer auf eine bestimmte Weise initialisiert werden sollen, unabhängig davon, welche konkrete Unterklasse letztendlich erstellt wird.

Kann eine abstrakte Klasse Objekte in Java haben?

Weil es abstrakt und ein Objekt ist konkret. Nein, Designer haben keinen Weg zur Verfügung gestellt. Weil ein abstrakte Klasse ist eine unvollständige Klasse (unvollständig in dem Sinne, dass es enthält abstrakt Methoden ohne Rumpf und Ausgabe) können wir keine Instanz erstellen oder Objekt ; das gleiche sagen Sie für eine Schnittstelle.

Empfohlen: