在Java中,super
关键字用于调用父类(或基类)的方法。在构造方法中使用super
关键字的主要目的是调用父类的构造方法,以便在创建子类对象时正确地初始化父类的成员变量。
当你在子类构造方法中使用super
关键字时,它会自动调用父类中与参数列表匹配的无参构造方法。如果没有匹配的构造方法,你需要显式地调用一个带参数的父类构造方法。
以下是一个简单的示例,说明如何在子类构造方法中使用super
关键字:
// 父类
class Animal {
String name;
public Animal() {
this("Unknown"); // 无参构造方法
}
public Animal(String name) {
this.name = name;
}
}
// 子类
class Dog extends Animal {
String breed;
public Dog(String name, String breed) {
super(name); // 调用父类的无参构造方法
this.breed = breed;
}
public Dog(String name, String breed, String color) {
super(name, breed); // 调用父类的带参构造方法
this.color = color;
}
}
在这个例子中,Dog
类继承了Animal
类,并在其构造方法中使用super
关键字调用了Animal
类的无参构造方法和带参构造方法。这样,当我们创建一个Dog
对象时,父类Animal
的构造方法会被正确地执行,从而初始化父类的成员变量。