Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 杂项

Java API 和框架

Java 类引用

Java 有用资源

Java - super 关键字



super 关键字类似于 this 关键字。以下是使用 super 关键字的场景。

  • 它用于区分超类的成员与子类的成员,如果它们具有相同的名称。

  • 它用于调用超类的构造方法。

区分成员

如果一个类继承了另一个类的属性。并且如果超类的成员与子类具有相同的名称,为了区分这些变量,我们使用 super 关键字,如下所示。

super.variable
super.method();

示例代码

本节提供了一个演示super关键字用法的程序。

在给定的程序中,您有两个类,名为Sub_classSuper_class,这两个类都具有名为 display() 的方法,但实现不同,并且名为 num 的变量具有不同的值。我们调用两个类的 display() 方法并打印两个类的变量 num 的值。在这里您可以观察到我们使用了 super 关键字来区分超类的成员与子类的成员。

复制并粘贴程序到名为 Sub_class.java 的文件中。

示例

class Super_class {
   int num = 20;

   // display method of superclass
   public void display() {
      System.out.println("This is the display method of superclass");
   }
}

public class Sub_class extends Super_class {
   int num = 10;

   // display method of sub class
   public void display() {
      System.out.println("This is the display method of subclass");
   }

   public void my_method() {
      // Instantiating subclass
      Sub_class sub = new Sub_class();

      // Invoking the display() method of sub class
      sub.display();

      // Invoking the display() method of superclass
      super.display();

      // printing the value of variable num of subclass
      System.out.println("value of the variable named num in sub class:"+ sub.num);

      // printing the value of variable num of superclass
      System.out.println("value of the variable named num in super class:"+ super.num);
   }

   public static void main(String args[]) {
      Sub_class obj = new Sub_class();
      obj.my_method();
   }
}

输出

使用以下语法编译并执行上述代码。

javac Super_Demo
java Super

执行程序后,您将得到以下结果:

This is the display method of subclass
This is the display method of superclass
value of the variable named num in sub class:10
value of the variable named num in super class:20

调用超类构造方法

如果一个类继承了另一个类的属性,则子类会自动获取超类的默认构造方法。但是,如果您想调用超类的带参数的构造方法,则需要使用 super 关键字,如下所示。

super(values);

示例代码

本节中给出的程序演示了如何使用 super 关键字来调用超类的带参数的构造方法。此程序包含一个超类和一个子类,其中超类包含一个接受整数值的带参数的构造方法,我们使用 super 关键字来调用超类的带参数的构造方法。

复制并粘贴以下程序到名为 Subclass.java 的文件中

示例

class Superclass {
   int age;

   Superclass(int age) {
      this.age = age; 		 
   }

   public void getAge() {
      System.out.println("The value of the variable named age in super class is: " +age);
   }
}

public class Subclass extends Superclass {
   Subclass(int age) {
      super(age);
   }

   public static void main(String args[]) {
      Subclass s = new Subclass(24);
      s.getAge();
   }
}

输出

使用以下语法编译并执行上述代码。

javac Subclass
java Subclass

执行程序后,您将得到以下结果:

The value of the variable named age in super class is: 24
java_basic_syntax.htm
广告