关于静态初始化和构造器方法

静态初始化这个东西也就是 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。详见上一篇

posted @ 2023-05-03 12:38  Link_Soul  阅读(39)  评论(0)    收藏  举报