对象的初始化流程如下:
静态成员代码块初始化按照逻辑顺序
初始化父类的静态成员
初始化父类的静态代码块
初始化子类的静态成员
初始化子类的静态代码块
初始化父类的非静态成员
初始化父类的非静态代码块
初始化父类的构造方法
初始化子类的非静态成员
初始化子类的非静态代码块
初始化子类的构造方法
注:父类及子类的静态成员和静态代码块只在程序运行时加载一次。
对象的初始化流程如下:
静态成员代码块初始化按照逻辑顺序
初始化父类的静态成员
初始化父类的静态代码块
初始化子类的静态成员
初始化子类的静态代码块
初始化父类的非静态成员
初始化父类的非静态代码块
初始化父类的构造方法
初始化子类的非静态成员
初始化子类的非静态代码块
初始化子类的构造方法
注:父类及子类的静态成员和静态代码块只在程序运行时加载一次。