子类必定会调用父类的构造器
这里分三种情况,都会显示或隐式的调用到父类的构造器
- 子类的构造器中没有使用this和super,那么会隐式的调用父类的无参构造器
- 子类使用super显示的调用父类的构造器
- 子类可以使用this,但是this总会调用到一个隐式调用父类无参构造器的构造器,或者一个super显示调用父类,英文两个构造器互相this调用的话就会有递归调用构造器的错误。
只有在没有定义构造器时才会自动创建无参构造器作为默认构造器
这个要非常注意了,一旦父类定义了无参构造器,便不会有默认的无参构造器,子类隐式调用的时候就会出错。
原文
https://blog.csdn.net/lastsweetop/article/details/82657578