class A { public A (a, b) { System.out.println(a+b); } }
由上述代码块可见,类A并没有默认的构造函数,实际运行重载的有参构造函数时,系统是否会帮我们在第一行添加无参构造函数,例如实际运行代码将变成
class A { public A (a, b) { this(); System.out.println(a+b); } }
会出现这样的情况以保证子类对象先构造完成吗
收起
两个地方不准确,1、每个类都会有一个默认的无参构造方法,不申明的话也会有。这是java的反射机制决定的。2、在继承关系中,构造方法中会调用super()方法,先完成父类的构造。从人类角度理解,先有父再有子。
报告相同问题?