子类可以使用下面形式的super来调用一个由其超类定义的构造函数:
super(parameter-list);
这里,parameter-list指定了超类中构造函数所需的任何形参.super()必须是在子类中执行的第一条语句:
public class test2 { // @param args public static void main(String args[]) { childClass $obj = new childClass(); System.out.println($obj.publicReturnInt()); } } class childClass extends parentClass { childClass() { super(100); System.out.println("childClass init"); } } class parentClass { private int num; parentClass(int n) { System.out.println("parentClass init"); num = n; } int publicReturnInt() { return returnInt(); } private int returnInt() { return num; } }
输出:
parentClass init childClass init 100
childClass使用形参调用super(),这样就会调用parentClass()的构造函数.
当一个子类调用super()时,就是在调用其直接超类的构造函数.因此,super()总是引用调用类的直接超类.在多级层次结构总也是如此,而且super()必须是子类构造函数中被执行的第一条语句.