Java 类中的初始化顺序

173 阅读1分钟

如果 Java 没有显式的继承类(只继承了 Object 类),那么 Java 类中的初始化顺序为 静态 > 构造方法 > 普通方法。

如果 Java 使用了显式继承,那么 Java 类中的初始化顺序为 父类静态 > 父类构造方法 > 父类普通方法 > 子类静态 > 子类构造方法 > 子类普通方法。

Father.java

package homework.practice;

/**
 * @author liyanan
 * @date 2019/12/29 17:48
 */
public class Father {
    static {
        System.out.println("父类静态代码块");
    }

    public Father() {
        System.out.println("父类无参构造方法");
    }
    

    public void sleep() {
        System.out.println("父类 sleep 方法");
    }
}

Children.java

package homework.practice;

/**
 * @author liyanan
 * @date 2019/12/29 17:49
 */
public class Children extends Father {
    static {
        System.out.println("子类静态代码块");
    }

    public Children() {
        //super();
        System.out.println("子类无参构造方法");
        super.sleep();
    }

    @Override
    public void sleep() {
        System.out.println("子类 sleep 方法");
    }

    public static void main(String[] args) {
        new Children().sleep();
    }
}

程序的运行结果为:

父类静态代码块
子类静态代码块
父类无参构造方法
子类无参构造方法
父类 sleep 方法
子类 sleep 方法