如果在Java中调用构造函数中的“super()”,而没有扩展任何类,会发生什么?


super关键字是Java中超类对象的引用。使用它,您可以调用超类的实例方法、构造函数和变量。

调用超类的构造函数

您可以从子类的构造函数中调用超类的构造函数。

示例

考虑以下示例,它包含两个类:SuperClass类和SubClass类,其中SubClass扩展了SuperClass。超类有一个带参数的构造函数,我们使用“super”关键字从子类中调用它。

在线演示

class SuperClass{
   SuperClass(int data){
      System.out.println("Superclass's constructor: "+data);
   }
}
public class SubClass extends SuperClass{
   SubClass(int data) {
      super(data);
   }
   public static void main(String args[]){
      SubClass sub = new SubClass(400);
   }
}

输出

Superclass's constructor: 400

如果SuperClass具有默认构造函数,则无需显式使用“super()”调用它,它将隐式调用。

示例

在线演示

class SuperClass{
   SuperClass(){
      System.out.println("Superclass's constructor");
   }
}
public class SubClass extends SuperClass{
   SubClass() {
      //super();
   }
   public static void main(String args[]){
      SubClass sub = new SubClass();
   }
}

输出

Superclass's constructor

如果我们不带任何超类调用“super()”

实际上,什么也不会显示。因为名为Object的类是Java中所有类的超类。如果您不带任何超类调用“super()”,则会在内部调用Object类的默认构造函数(它什么也不显示)。

在线演示

public class Sample {
   Sample() {
      super();
   }
   public static void main(String args[]){
      Sample sub = new Sample();
   }
}

输出

//Nothing will be displayed……

更新于:2020年6月29日

3K+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始
广告