Heim >Java >javaLernprogramm >Fehler beim impliziten Java-Superkonstruktor: Wie behebt man „Der implizite Superkonstruktor ... ist für den Standardkonstruktor nicht definiert'?
Java-Fehler: Impliziter Superkonstruktor für Standardkonstruktor nicht definiert
F: Standardkonstruktorfehler mit Unterklasse und abstrakter Basisklasse
Ein Java-Entwickler stößt auf einen Fehler mit der Meldung „Der implizite Superkonstruktor BaseClass() ist undefiniert für Standardkonstruktor. nach dem Entfernen redundanter Konstruktoren aus Unterklassen. Sie fragen sich, ob es möglich ist, die Konstruktoren zu entfernen und gleichzeitig das Vorlagenmethodenmuster einzuhalten.
A: Konstruktion und Standardkonstruktoren
Der Fehler entsteht, weil die Basisklasse ( BaseClass) deklariert einen Konstruktor (public BaseClass(String someString)) und deaktiviert den Standardkonstruktor (ohne Argumente). Beim Entfernen des Konstruktors aus der Unterklasse (ACSubClass) fügt der Compiler über den Standardkonstruktor einen impliziten Aufruf an den Konstruktor ohne Argumente der Basisklasse (super()) ein. Da BaseClass keinen Konstruktor ohne Argumente hat, ist dies illegal.
Mögliche Lösungen:
Diese Lösungen sind jedoch möglicherweise nicht realisierbar, wenn die Basisklasse Konstruktorargumente erfordert.
Bedenken Sie außerdem Umgestaltung des Designs:
Das obige ist der detaillierte Inhalt vonFehler beim impliziten Java-Superkonstruktor: Wie behebt man „Der implizite Superkonstruktor ... ist für den Standardkonstruktor nicht definiert'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!