对于一个类时的优先级:
静态变量 > 静态代码块 > 变量 > 初始代码块 > 构造函数
但当涉及到继承时,按照如下顺序执行:
1.执行父类的静态代码块,并初始化父类静态成员变量。
2.执行子类的静态代码块,并初始化子类静态成员变量 。
3.执行父类的构造代码块,并初始化父类普通成员变量,执行父类的构造函数。
4.执行子类的构造代码块 ,并初始化子类普通成员变量,执行子类的构造函数。
其中静态代码块与静态成员变量,普通成员变量与初始代码块,加载的先后顺序主要看在类中出现的顺序。
对于一个类时的优先级:
静态变量 > 静态代码块 > 变量 > 初始代码块 > 构造函数
但当涉及到继承时,按照如下顺序执行:
1.执行父类的静态代码块,并初始化父类静态成员变量。
2.执行子类的静态代码块,并初始化子类静态成员变量 。
3.执行父类的构造代码块,并初始化父类普通成员变量,执行父类的构造函数。
4.执行子类的构造代码块 ,并初始化子类普通成员变量,执行子类的构造函数。
其中静态代码块与静态成员变量,普通成员变量与初始代码块,加载的先后顺序主要看在类中出现的顺序。