- 初始化顺序:
先找到main(),然后加载含有main()的类A2;
若发现该类继承自A1,则初始化基类A1的静态成员变量;
初始化自己A2静态成员变量;
执行main();
若创建一个类B2的对象,则先判断是否继承;
若继承自类B1,则初始化基类B1静态成员变量,
初始化自己B2静态成员变量;
初始化基类B1的非静态成员变量,
调用基类B1的构造方法;
初始化自己B2的非静态成员变量,
调用自己B2的构造方法;
继续执行main();
先找到main(),然后加载含有main()的类A2;
若发现该类继承自A1,则初始化基类A1的静态成员变量;
初始化自己A2静态成员变量;
执行main();
若创建一个类B2的对象,则先判断是否继承;
若继承自类B1,则初始化基类B1静态成员变量,
初始化自己B2静态成员变量;
初始化基类B1的非静态成员变量,
调用基类B1的构造方法;
初始化自己B2的非静态成员变量,
调用自己B2的构造方法;
继续执行main();