资源中整理super关键字的知识:
1、子类继承父类时,子类构造方法第一行系统会自动默认编写super(),在调用子类的构造方法时,先调用父类的无参数构造方法。
2、如果父类中没有 无参数的构造方法,那子类继承父类时就会报错,因子类的构造方法在默认调用父类无参数构造方法super()不存在。这时我们解决方式是:
通过手动在子类中编写调用父类有参数的构造方法来避免报错(即在super()括号填进任意参数就能调用父类方法)
public class Father(){
int id;
public Father(int id){
System.out.println("调用父类中的构造方法")
}
}
//定义子类
public class Son extends Father{
public Son{
super(10);//手动编写调用父类含有参数的构造方法
System.out.println("调用子类的构造方法")
}
}
3、如果子类第一行编写了this()、this(实参)由于this()也会占用第一行,所以会把默认的super()挤掉,导致不能调用父类的构造方法。