super有两种通用形式。第一种调用超类的构造函数。第二种用来访问被子类的成员隐 藏的超类成员 第一种 class Box{ double b; Box(double a){ b=a; }} class BoxWeight extend Box{ BoxWeight(double len, double m) { super(len); weight = m; }} 第二种 class A { int i; } // Create a subclass by extending class A. class B extends A { int i; // this i hides the i in A B(int a, int b) { super.i = a; // i in A i = b; // i in B } } }
class aaa {
private int a;
public int b;
aaa(int a ,int b){this.a=a;
this.b=b;}
}
class bbb extends aaa {
bbb(int a,int b){super(a,b);}
}
且super()只能在构造方法中调用访问父类的private field,
当子类初始化时,它会先调用super(),或者调用其显式调用的super()方法,以完成对父类的初始化。
藏的超类成员
第一种
class Box{
double b;
Box(double a){
b=a;
}}
class BoxWeight extend Box{
BoxWeight(double len, double m) {
super(len);
weight = m;
}}
第二种
class A {
int i;
}
// Create a subclass by extending class A.
class B extends A {
int i; // this i hides the i in A
B(int a, int b) {
super.i = a; // i in A
i = b; // i in B
}
}
}