如果一个类有2个构造器,其中一个有参数,一个无参数,其子类继承时,若显示的使用super 关键字,super 可以带参数,也可以不带参数,对应会调用相应的父类构造器,如果子类构造器中没有显示地使用super 则系统默认调用无参数构造器。
ep:
class SuperClass {
private int n;
SuperClass(){
System.out.println("SuperClass()");
}
SuperClass(int n) {
System.out.println("SuperClass(int n)");
this.n = n;
}
}
class SubClass extends SuperClass{
private int n;
SubClass(){
super(300);
System.out.println("SubClass");
}
public SubClass(int n){
System.out.println("SubClass(int n):"+n);
this.n = n;
}
}
public class TestSuperSub{
public static void main (String args[]){
SubClass sc = new SubClass();
SubClass sc2 = new SubClass(200);
}
}
输出结果为:
SuperClass(int n) SubClass SuperClass() SubClass(int n):200