目前,我们已经用到由一个超类和一个之类组成的简单的类层级结构.然而,你可建立由任意多层级继承组成的层次结构.所前所述,一个子类也可以是另一个子类的超类.例如,已知三个类,分别为A,B,C.C是B的子类,B是A的子类.当出现这种情况时,每个子类继承他所有超类的所有属性.
public class test2 { // @param args public static void main(String args[]) { finalChildClass $obj = new finalChildClass(); System.out.println($obj.methodA()); System.out.println($obj.publicReturnInt()); System.out.println($obj.superPublicReturnInt()); } } class finalChildClass extends childClass { String methodA() { return "methodA"; } int superPublicReturnInt() { return super.superPublicReturnInt(); } } class childClass extends parentClass { childClass() { super(100); System.out.println("childClass init"); } int publicReturnInt() { return 0; } int superPublicReturnInt() { return super.publicReturnInt(); } } class parentClass { private int num; parentClass(int n) { System.out.println("parentClass init "+n); num = n; } int publicReturnInt() { return returnInt(); } private int returnInt() { return num; } }
输出:
parentClass init 100 childClass init methodA 0 100
super()总是引用最靠近的超类,在类层级结构中,如果一个超类构造函数需要形参,那么无论子类是否需要自己的形参,所有的子类都必须把这些形参传递上去.