1.一个类中若没有任何构造器,则编译的时候回默认生成一个无参构造器;
2.若父类中已经有有参构造方法,那么子类中也必须存在有参构造方法,且必须通过super关键字调用父类有参构造器;
3.若父类中同时存在有参和无参构造器,那么子类中的有参构造器会默认执行父类无参构造方法,参考代码如下:
public class ConstructorTest { String name; //给父类一个有参构造器 public ConstructorTest(){ System.out.println("1"); } public ConstructorTest(String name){ System.out.println("2"); this.name = name; } } class Test extends ConstructorTest{ ConstructorTest constructorTest; /** * 子类也有一个有参构造器 * 运行结果为:1,3,2 */ public Test(String name){ //此构造器会先执行ConstructorTest类中的无参构造方法 System.out.println("3"); this.name = name; constructorTest = new ConstructorTest(name); } public Test(){ System.out.println(4); } }