Java类初始化顺序

来源:互联网 发布:软件机器码修改 编辑:程序博客网 时间:2024/05/15 23:24

所有情况的类初始化顺序
如果实际类中没有定义则跳过:父类静态变量——父类静态代码块——子类静态代码块——父类非静态变量——父类非静态代码块——父类构造函数——子类非静态变量——子类非静态代码块——子类构造函数

一言不合,上代码:

/** * 父类 */public class Person {    static String NAME = "1:小明";//父类静态变量    Integer age = 12; //5:父类非静态变量    static {        System.out.println("2:父类静态块");    }    {        System.out.println("6:父类非静态代码块");    }    public Person() {        System.out.println("7:父类构造函数");    }}
/** * 子类 */public class Student extends Person {    String address = "wuhan"; //8: 子类非静态变量    static String email = "358824891"; //3:子类静态变量    static {        System.out.println("4:子类静态代码块");    }    {        System.out.println("9:子类非静态代码块");    }    public Student() {        System.out.println("10:子类构造函数");    }}
public class test {    public static void main(String[] args){        new Student();    }}

输出

2:父类静态块4:子类静态代码块6:父类非静态代码块7:父类构造函数9:子类非静态代码块10:子类构造函数
原创粉丝点击