Verstehen der Notwendigkeit von super() in Unterklassenkonstruktoren
Beim Erstellen von Unterklassen in Java stellt sich die Frage, ob super() Der Methodenaufruf ist im Konstruktor der Unterklasse obligatorisch. Dieser Artikel befasst sich mit diesem Thema und bietet Klarheit zu den folgenden Aspekten:
Automatisches Einfügen von super() durch den Compiler
Die kurze Antwort auf diese Frage lautet Nein. Der Compiler fügt einen super()-Aufruf nicht automatisch in den Konstruktor der Unterklasse ein, wenn dies nicht explizit angegeben ist. Daher muss der Unterklassenkonstruktor immer den Superklassenkonstruktor angeben, den er aufrufen möchte.
Nichtvorhandensein von No-Args-Konstruktoräquivalenten
Es ist wichtig zu verstehen, dass es sich nicht um das Setzen handelt Ein super()-Aufruf im Unterklassenkonstruktor bedeutet nicht, dass der Compiler einen äquivalenten Konstruktor ohne Argumente einfügt. Wenn die Superklasse keinen zugänglichen Konstruktor ohne Argumente hat, führt das Weglassen des super()-Aufrufs zu einem Kompilierungsfehler.
Konstruktoraufruf, wenn Argumente vorhanden sind
Betrachten Sie einen Unterklassenkonstruktor mit Argumenten. In diesem Fall ist der super()-Aufruf erforderlich, um anzugeben, welcher Superklassenkonstruktor aufgerufen werden soll. Der aufgerufene Oberklassenkonstruktor wird in erster Linie durch die tatsächlichen Argumente bestimmt, die an den Konstruktor der Unterklasse übergeben werden. Wenn im super()-Aufruf keine Argumentliste angegeben ist, wird der Superklassenkonstruktor aufgerufen, der der Reihenfolge und den Typen der Konstruktionsargumente der Unterklasse entspricht.
Das obige ist der detaillierte Inhalt vonIst „super()“ in Unterklassenkonstruktoren obligatorisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!