JAVA初始化顺序

来源:互联网 发布:sql导入excel数据 编辑:程序博客网 时间:2024/05/16 00:51

顺序如下:

父类静态属性
父类静态块
子类静态属性
子类静态块
父类属性默认值
子类属性默认值
父类属性
父类块
父类构造器
子类属性
子类块
子类构造器


遵循3个原则:

1.静态块>>块
2.成员变量赋值>>块赋值>>构造器赋值
3.父类的块>>父类构造器>>自身块>>自身构造器

public class Test extends Parent {    private static String str = "子类静态属性3";    static {        out.println(str);        out.println("子类静态块4");    }    private String string = "子类属性10";    {        out.println(string);        out.println("子类块11");    }    private boolean result = true;    public Test() {        super();        out.println("子类构造器12");    }    public String getSubString() {        return !result ? "子类属性默认值6" : string;    }    public static void main(String[] args) {        new Test();    }}class Parent {    private static String str = "父类静态属性1";    static {        out.println(str);        out.println("父类静态块2");    }    {        out.println(getParentString());        out.println(getSubString());    }    private String string = "父类属性7";    {        out.println(string);        out.println("父类块8");    }    private boolean result = true;    public Parent() {        super();        out.println("父类构造器9");    }    public String getSubString() {        return null;    }    public String getParentString() {        return !result ? "父类属性默认值5" : string;    }}

println:

父类静态属性1
父类静态块2
子类静态属性3
子类静态块4
父类属性默认值5
子类属性默认值6
父类属性7
父类块8
父类构造器9
子类属性10
子类块11
子类构造器12

0 0
原创粉丝点击