Java 中的 super 关键字
Siddharth Swami
2023年10月12日
Java
Java Class

在 Java 中,我们有一个与父类有些相关的预定义关键字 super
。我们将在本教程中详细讨论 super()
函数。
在 Java 中,super
关键字充当父类对象的引用变量。它可以用来调用父类的方法和变量。
例如
class Teacher { // Parent class
int grade = 90;
}
class Students extends Teacher { // subclass
Students() {
System.out.println("Grade " + super.grade);
}
}
public class Main {
public static void main(String[] args) {
Students s = new Students();
}
}
输出:
Grade 90
在上面的示例中,我们使用 super
关键字从其子类 Students
的构造函数访问了父类 Teacher
中的变量 grade
。
我们还有 super()
函数,它调用父类的构造函数。该函数仅用于调用父类的构造函数。可以使用 super()
函数调用参数和非参数构造函数。如果构造函数在使用 super()
函数时没有显式调用超类构造函数,则 Java 编译器本身会调用超类的无参数构造函数。
请参考下面的代码。
class Teacher { // Parent class
Teacher() // constructor
{
System.out.println("Teacher class Constructor");
}
}
class Students extends Teacher { // subclass
Students() {
super();
System.out.println("Students class Constructor");
}
}
public class Main {
public static void main(String[] args) {
Students s = new Students();
}
}
输出:
Teacher class Constructor
Students class Constructor
我们在上面的代码中创建了一个父类 Teacher
和一个父类构造函数,它会打印一条消息。然后从 Teacher
扩展了一个子类 Students
,它有一个构造函数 Students()
,它由调用父类构造函数的 super()
函数组成。然后我们有主类,它调用子类来执行程序。super()
函数调用父类构造函数来打印来自父类和子类的消息。
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe