站点图标 度崩网-几度崩溃

打印结果是什么

package constxiong.interview;

/**
 * 测试父类、子类构造函数打印
 * 
 * @author ConstXiong
 * @date 2019-11-01 09:30:26
 */
public class TestConstructorPrint {

	public static void main(String[] args) {
		Parent parent = new Child();
		parent = new Child();
	}

}

class Parent {
	static {
		System.out.print("1");
	}

	public Parent() {
		System.out.print("2");
	}
}

class Child extends Parent {
	static {
		System.out.print("3");
	}

	public Child() {
		System.out.print("4");
	}
}

 


参考答案

打印:132424

 

创建对象时构造器的调用顺序

  • 递归初始化父类静态成员和静态代码块,上层优先
  • 初始化本类静态成员和静态代码块
  • 递归父类构造器,上层优先
  • 调用自身构造器