这个是Java的规定:子类继承父类,子类的构造方法必须调用super()即父类的构造方法,而且必须放在构造方法的第一行。
1、为什么在实例化子类的对象时,会先调用父类的构造器?
答:子类继承父类后,获取到父类的属性和方法,这些属性和方法在使用前必须先初始化,所以须先调用父类的构造器进行初始化
2、在哪里调用父类的构造器?
答:在子类构造器的第一行会隐式的调用 super();,即调用父类的构造器
如果父类中没有定义空参的构造器,则必须在子类的构造器的第一行显示的调用super(参数); ,以调用父类中构造器
如果子类中构造器的第一行写了this();,则就隐式的super();会消失,因为super()和this()都只能在构造器的第一行定义
本文探讨了Java中子类构造器如何调用父类构造器的原理,解释了为何在实例化子类时必须先初始化父类的属性和方法。子类构造器第一行默认会隐式调用`super()`,若父类无默认构造器,则需显式调用`super(参数)`。同时,`super()`和`this()`不能在同一构造器中同时出现。
2127

被折叠的 条评论
为什么被折叠?



