子类和父类的构造函数
初学Java,碰到个疑惑的问题,子类的构造函数一定会执行父类的构造函数?
有没有可能new T2()不运行T1的构构造?
public class Test1 {
public static void main(String[] args) {
new T2();
}
}
class T1 {
T1() {
System.out.println("T1 Created.");
}
}
class T2 extends T1 {
T2() {
System.out.println("T2 Created.");
}
}
------解决方案--------------------不可能,先会执行T1()。
------解决方案--------------------没有父亲哪来的儿子
还有:子类的构造函数一定会执行无参的父类构造函数
------解决方案--------------------如果没有显式调用父类的构造函数,编译器会在子类的函数函数里加上调用父类无参的构造函数的方法。
所以T1的构造函数肯定会调用的。