如果在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……
广告