静态初始化这个东西也就是 static 修饰过的属性和方法。和构造器一样也是先父类再子类,而且是先于构造方法的调用。
public class TestSuper2 { public static void main(String[] args) { new ChildClass2(); } } class FatherClass2{ static { System.out.println("静态初始化ChildClass2"); } public FatherClass2(){ System.out.println("调用父类构造器"); } } class ChildClass2 extends FatherClass2{ static { System.out.println("静态初始化ChildClass2"); } public ChildClass2() { System.out.println("子类构造器"); } }
静态初始化ChildClass2
静态初始化ChildClass2
调用父类构造器
子类构造器
如上的代码中可以很容易就能看出来static初始化是先于构造器方法的执行。而且在执行子类的初始化之前,先去调用了父类的static初始化和构造器。并且啊 这个子类先调用父类的static 和 构造器是通过super。详见上一篇
标签:初始化,静态,子类,构造,static,ChildClass2 From: https://www.cnblogs.com/Link-Soul/p/17368929.html