标签:代码 初始化顺序 加载 end www 实例化 先后 style 情况
在实例化对象前,如果没有加载过相应的类信息,那么会首先加载类,然后才实例化对象。
在这种情况下,顺序为:
a. 加载类
b. 创建对象
public class Father { Another a = new Another("father 普通成员"); static Another a1 = new Another("father 静台成员"); static { Another a2 = new Another("father static block"); } public Father(){ System.out.println("执行father构造"); } }
子类:
public class Son extends Father{ static Another aa1 = new Another("son 静态成员"); Another a2 = new Another("son 普通成员"); static{ Another a2 = new Another("son 静态代码块"); } public Son(){ System.out.println("执行Son构造函数"); } }
测试类:
public class Test { static { System.out.println("静态代码块执行"); } public static void main(String[] args) { Son tn = new Son(); } }
输出为:
静态代码块执行
father 静台成员
father static block
son 静态成员
son 静态代码块
father 普通成员
执行father构造
son 普通成员
执行Son构造函数
参考:https://www.zhihu.com/question/49196023/answer/114859346
标签:代码 初始化顺序 加载 end www 实例化 先后 style 情况
原文地址:https://www.cnblogs.com/shuhe-nd/p/11750740.html