Java 中的 super 关键字

Siddharth Swami 2021年10月2日
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