Nein, Sie können einen Konstruktor nicht überschreiben. Sie sind nicht geerbt. Jeder Unterklassenkonstruktor muss jedoch entweder an einen anderen Konstruktor innerhalb der Unterklasse oder an einen Konstruktor in der Oberklasse ketten. Also zum Beispiel:
%Vor%Die Implikation, dass Konstruktoren nicht vererbt werden, ist, dass Sie dies nicht tun können:
%Vor%Wie für Ihre zweite Frage, ja, ein Konstruktor kann privat sein. Es kann immer noch innerhalb der Klasse oder einer einschließenden Klasse aufgerufen werden. Dies ist üblich für Dinge wie Singletons:
%Vor%Private Konstruktoren werden auch verwendet, um die beliebige Instanziierung zu verhindern, wenn Sie eine Dienstprogrammklasse haben, die nur statische Methoden hat.
Konstruktor ist für eine Klasse gedacht. Es kann unter keinen Umständen außer Kraft gesetzt werden. Es ist so, als wollte man die Ferrari-Fabrik von der BMW-Fabrik wechseln (was nicht praktikabel ist). Sicher können Sie überladen, um die Funktionalität zu erhalten, die Sie brauchen.
Ja Konstruktor kann privat sein. Wenn Sie es privat machen, lassen Sie nicht zu, dass die Außenwelt ein Objekt direkt über Konstruktor erzeugt. Aber das Singleton-Muster verwendet eine öffentliche statische Methode, um den Konstruktor der Klasse aufzurufen, und das Objekt kann erstellt werden.
1) NEIN! Ein Konstruktor gehört zu der Klasse, in der er deklariert ist. Eine Unterklasse ist eine andere Klasse und muss einen eigenen Konstruktor haben. Also, Konstruktoren können einfach nicht überschrieben werden.
2) Ja, das wird normalerweise bei Singletons gemacht.
1) Ist das nur eine Hausaufgabe, oder versuchen Sie etwas zu erreichen? Können Sie zeigen, was Sie mit einem übergeordneten Konstruktor erreichen möchten?
Da der übergeordnete Konstruktor zuerst aufgerufen wird, können Sie die Basisklasse an Ihre Bedürfnisse in Ihrem Konstruktor anpassen. Natürlich nur soweit der Zugriff auf Basisattribute nicht privat ist. Wenn Sie eine Klasse erweitern, aber ihre privaten Attribute nicht mögen, war das Ableiten von Fehlern ein Fehler.
2) Kann ein Konstruktor privat sein?
Ja, aber weißt du, wofür es gut ist?
In einer abgeleiteten Klasse können Sie einen neuen Konstruktor mit derselben Signatur erstellen, der aber nicht wirklich überschrieben wird, da der Konstruktor der Elternklasse bei der Initialisierung der Klasse immer noch vor dem neuen aufgerufen wird.
Der Konstruktor einer Klasse kann privat oder geschützt sein und natürlich öffentlich sein. aber wenn es geschützt oder privat ist, wie würden Sie die Klasse initiieren? (Eigentlich könntest du mit einer statischen Funktion in dieser Klasse ...)
Sie können den Rückruf verwenden:
In der übergeordneten Klasse:
%Vor%in Kind:
%Vor%Beide sind nicht wahr, denn wenn eine Klasse eine andere Klasse erbt, ruft sie automatisch ihre Eltern-Klasse auf, daher macht es Sinn, dass wir sie nicht überschreiben und sie endgültig machen können.
Sie können einen Konstruktor nicht überschreiben, Sie können ihm jedoch einen Zugriffsebenenmodifikator wie public, private oder default zuweisen. Sie möchten einen privaten Konstruktor für Dinge wie ein Singleton oder für eine Klasse, die meist aus statischen Methoden und solchen (z. B. Java-Klasse Math)
gemacht wirdTags und Links java