Java 中类的变量、代码块、构造方法加载的顺序
Java 面试 About 2,536 words加载顺序
- 父类静态变量
- 父类静态代码块
- 子类静态变量
- 子类静态代码块
- 父类成员变量
- 父类代码块
- 父类构造方法
- 子类成员变量
- 子类代码块
- 子类构造方法
示例代码
public class Parent {
public static final ParentStaticFiled PARENT_STATIC_FILED = new ParentStaticFiled();
public ParentMemberFiled parentMemberFiled = new ParentMemberFiled();
private String parentMemberVar;
static {
System.out.println(LocalDateTime.now() + " Parent static block#" + PARENT_STATIC_FILED);
}
{
System.out.println(LocalDateTime.now() + " Parent non static block#" + parentMemberVar);
}
public Parent() {
parentMemberVar = "pmv";
System.out.println(LocalDateTime.now() + " Parent Constructor#" + parentMemberVar);
}
}
public class ParentStaticFiled {
public ParentStaticFiled() {
System.out.println(LocalDateTime.now() + " Parent static field");
}
}
public class ParentMemberFiled {
public ParentMemberFiled() {
System.out.println(LocalDateTime.now() + " Parent member field");
}
}
public class Child extends Parent {
public static final ChildStaticFiled CHILD_STATIC_FILED = new ChildStaticFiled();
public String childMemberVar = "cmv";
public ChildMemberFiled childMemberFiled = new ChildMemberFiled();
static {
System.out.println(LocalDateTime.now() + " Child static block#" + CHILD_STATIC_FILED);
}
{
System.out.println(LocalDateTime.now() + " Child non static block#" + childMemberVar);
}
public Child() {
System.out.println(LocalDateTime.now() + " Child constructor#" + childMemberVar);
}
public static void main(String[] args) {
Child child = new Child();
}
}
public class ChildStaticFiled {
public ChildStaticFiled() {
System.out.println(LocalDateTime.now() + " Child static field");
}
}
public class ChildMemberFiled {
public ChildMemberFiled() {
System.out.println(LocalDateTime.now() + " Child member field");
}
}
输出:
2021-04-19T19:58:34.549045300 Parent static field
2021-04-19T19:58:34.564671500 Parent static block#ParentStaticFiled@402f32ff
2021-04-19T19:58:34.595926100 Child static field
2021-04-19T19:58:34.595926100 Child static block#ChildStaticFiled@5ae9a829
2021-04-19T19:58:34.595926100 Parent member field
2021-04-19T19:58:34.595926100 Parent non static block#null
2021-04-19T19:58:34.595926100 Parent Constructor#pmv
2021-04-19T19:58:34.595926100 Child member field
2021-04-19T19:58:34.595926100 Child non static block#cmv
2021-04-19T19:58:34.595926100 Child constructor#cmv
Views: 2,077 · Posted: 2021-04-19
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...