当生成子类对象时,Java 默认首先调用父类的不带参数的构造方法,然后执行该构造方法,生成父类的对象。
接下来,再去调用子类的构造方法,生成子类的对象。
【要想生成子类的对象,首先需要生成父类的对象,没有父类对象就没有子类对象。比如说:没有父亲,就没有孩子】。
也有解决办法:显式调用父类构造方法
如果子类使用super()显式调用父类的某个构造方法,那么在
执行的时候就会寻找与super()所对应的构造方法而不会再去
寻找父类的不带参数的构造方法。与this 一样,super 也必须
要作为构造方法的第一条执行语句,前面不能有其他可执行
语句。
关于继承的3 点:
a) 父类有的,子类也有
b) 父类没有的,子类可以增加
c) 父类有的,子类可以改变
关于继承的注意事项
a) 构造方法不能被继承
b) 方法和属性可以被继承
c) 子类的构造方法隐式地调用父类的不带参数的构造方法
d) 当父类没有不带参数的构造方法时,子类需要使用super 来显
式地调用父类的构造方法,super指的是对父类的引用
e) super关键字必须是构造方法中的第一行语句。