为什么在实例化子类对象时,会先调用父类的构造器?
子类继承父类后要想获取到父类的属性和方法,必须调用父类的构造器对父类进行初始化才可以
在哪里调用的父类构造器呢?
一般在子类构造器的第一行会隐式地调用super(),即调用父类的构造器。
(1)如果父类没有定义空参构造器,则必须在子类构造器的第一行显示地调用super(参数)以调用父类的构造器。
(2)如果子类构造器第一行写了this(),则隐式的super()就会消失。this()和super()不能同时出现,如果子类构造器第一行写了this()说明其调用了其他的构造器,在其他构造器的第一行还是会有super()的,因为子类实例化前必须调用父类的构造器,一直到最上面的Object类。