Java 中的 super 关键字
Siddharth Swami
2021年10月2日
在 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()
函数调用父类构造函数来打印来自父类和子类的消息。