public class Test2 {
public static void main(String[] args) throws IllegalAccessException, InstantiationException {
P1 p1 = new P1("哈哈");
}
}
class P{
public P(String s) {
//第二步
System.out.println("父类"+s);
}
}
class P1 extends P{
public P1(String s) {
//第一步
super(s);
//第三步
System.out.println("子类");
}
}
结果
父类哈哈
子类
结论:
先从子类的构造函数开始,不管有没有显示调用父类构造函数,都会先执行父类的构造函数,执行完,再开始执行子类的构造函数。
如注释中的步骤一样。