说在前面:
每个类都会有一个默认的构造器(隐式的),但如果我们重新写了一个构造器,默认的隐式构造器就会被覆盖(就没用了),除非我们再显示的定义以下,如下代码所示:
Class Dog(){
public Dog(){} //显示声明默认构造器
public Dog(int age, int weight){}
}
正题:
先说结论:子类的构造器会先调用父类的构造器。
上述代码的输出结果是:
可以看见,在我们调用子类构造器去new sonClass时,它会先调用父类的构造器,然后才调用子类的构造器。