备注:执行main()方法会先加载main()方法所在的类。存在继承关系中,创建子类对象初始化过程为:
父类静态成员和语句块
子类静态成员和静态语句块
父类普通成员和普通语句块
父类构造函数
子类普通成员和普通语句块
父类构造函数
示例如下:
public class A {
    public A(){
        System.out.println("A构造函数-----");
    }
    {
        System.out.println("A普通语句块-----");
    }
    static
    {
        System.out.println("A静态语句块-----");
    }
}
class B extends A{
    public B(){
        System.out.println("B构造函数-----");
    }
    {
        System.out.println("B普通语句块-----");
    }
    static
    {
        System.out.println("B静态语句块-----");
    }
    public static void main(String[] args) {
        System.out.println("main---------");
        A a = new B();
    }
}

原文:https://www.cnblogs.com/huangpeideng/p/13508059.html