Heim  >  Artikel  >  Java  >  Was bedeutet super() in Java?

Was bedeutet super() in Java?

下次还敢
下次还敢Original
2024-04-27 00:15:251056Durchsuche

Das Schlüsselwort

super() wird verwendet, um den Konstruktor der übergeordneten Klasse im Java-Unterklassenkonstruktor aufzurufen, um sicherzustellen, dass die Instanzvariablen der übergeordneten Klasse korrekt initialisiert werden. Die Syntax ist super() (keine Parameter) oder super (Parameter).

Was bedeutet super() in Java?

super(): Aufruf des Konstruktors der übergeordneten Klasse in Java

In Java wird das Schlüsselwort super() verwendet, um den Konstruktor der übergeordneten Klasse aufzurufen. Es ist die erste Anweisung im Unterklassenkonstruktor und ist für die Initialisierung der Instanzvariablen der übergeordneten Klasse verantwortlich. super() 关键字用于调用父类的构造函数。它是子类构造函数中的第一个语句,负责初始化父类的实例变量。

为什么要调用父类构造函数?

当子类实例化时,Java 首先调用父类的构造函数。这确保了父类的实例变量正确初始化。如果子类未明确调用父类构造函数,则 Java 将自动调用无参构造函数。但建议显式调用父类构造函数,因为它可以明确指定要调用的构造函数,并避免意外行为。

语法:

super() 关键字可以带有或不带参数:

  • 无参数:调用父类的无参构造函数。
  • 带参数:调用父类的带参构造函数,其中参数与父类构造函数中的参数对应。

示例:

<code class="java">// 父类 Animal
class Animal {
    private String name;

    public Animal(String name) {
        this.name = name;
    }
}

// 子类 Dog
class Dog extends Animal {
    private int age;

    public Dog(String name, int age) {
        // 调用父类的带参构造函数
        super(name);
        this.age = age;
    }
}</code>

在上面的示例中,Dog 类的构造函数中调用了 super(name),它将 name 参数传递给父类 Animal 的带参构造函数。这确保了 Animal 类的 name 实例变量正确初始化。

注意事项:

  • super()
  • Warum müssen wir den Konstruktor der übergeordneten Klasse aufrufen?
  • Wenn eine Unterklasse instanziiert wird, ruft Java zuerst den Konstruktor der übergeordneten Klasse auf. Dadurch wird sichergestellt, dass die Instanzvariablen der übergeordneten Klasse korrekt initialisiert werden. Wenn die untergeordnete Klasse den Konstruktor der übergeordneten Klasse nicht explizit aufruft, ruft Java automatisch den Konstruktor ohne Argumente auf. Es wird jedoch empfohlen, den Konstruktor der übergeordneten Klasse explizit aufzurufen, da er den aufzurufenden Konstruktor klar angibt und unerwartetes Verhalten vermeidet.
🎜🎜Syntax: 🎜🎜🎜super() Das Schlüsselwort kann mit oder ohne Parameter sein: 🎜
    🎜🎜Keine Parameter: 🎜Rufen Sie den Parameterlosen Konstruktor der übergeordneten Klasse auf. 🎜🎜🎜Mit Parametern: 🎜Rufen Sie den parametrisierten Konstruktor der übergeordneten Klasse auf, wobei die Parameter den Parametern im Konstruktor der übergeordneten Klasse entsprechen. 🎜🎜🎜🎜Beispiel: 🎜🎜rrreee🎜Im obigen Beispiel wird super(name) im Konstruktor der Klasse Dog aufgerufen, die name-Parameter werden an den parametrisierten Konstruktor der übergeordneten Klasse <code>Animal übergeben. Dadurch wird sichergestellt, dass die Instanzvariable name der Klasse Animal korrekt initialisiert wird. 🎜🎜🎜Hinweis: 🎜🎜
      🎜super() muss die erste Anweisung im Unterklassenkonstruktor sein. 🎜🎜Wenn die übergeordnete Klasse keinen parameterlosen Konstruktor hat, muss die Unterklasse explizit den parametrisierten Konstruktor der übergeordneten Klasse aufrufen. 🎜🎜Wenn der Konstruktor der Unterklasse den Konstruktor der übergeordneten Klasse nicht aufruft, ruft Java automatisch den Konstruktor ohne Argumente der übergeordneten Klasse auf. 🎜🎜

Das obige ist der detaillierte Inhalt vonWas bedeutet super() in Java?. 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