父类构造方法对子类构造方法的影响
- 1.一个类中如果没有定义构造方法则默认有一个无参构造方法
- 可以通过右键generate-source - constructors from superclass点击OK
- 即可看到默认的无参构造方法`
public Father() {
super();//改代码行必须放在有效代码行的第一行;调用父类无参构造方法
- 2.this([参数列表])调用本类构造方法,但必须放在有效代码行的第一行,所以一个构造方法中如果已经调用了本类构造方法,则该构造方法不能直接调用父类构造方法,因为有效代码行只有一行
- 3.如果子类构造方法没有调用本类构造方法,也没有指定调用父类构造方法,则默认调用父类无参构造方法
总结
如果子类构造方法没有调用本类方法,也没有调用父类构造方法,则默认调用父类无参构造方法
- 若此时父类中有定义有参构造方法,没有定义无参构造方法,子类无法调用父类默认的无参构造方法(该无参构造方法隐藏)