Heim  >  Artikel  >  Java  >  Ist „super()“ in Unterklassenkonstruktoren obligatorisch?

Ist „super()“ in Unterklassenkonstruktoren obligatorisch?

Susan Sarandon
Susan SarandonOriginal
2024-10-30 22:23:30607Durchsuche

Is `super()` Mandatory in Subclass Constructors?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn