Java 中的 super 关键字

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

在 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() 函数调用父类构造函数来打印来自父类和子类的消息。

相关文章 - Java Class