Java中static块,构造块,构造函数的执行顺序

Posted 康威特也楼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中static块,构造块,构造函数的执行顺序相关的知识,希望对你有一定的参考价值。

public class Father {
    static {
        System.out.println("Father静态块");
    }

    {
        System.out.println("Father构造块");
    }

    public Father() {
        System.out.println("Father构造器");
    }

    void func1() {
        System.out.println("Father方法 1");
    }

    public static void main(String[] args) {
        Father father = new Son();
        father.func1();
    }

}

class Son extends Father {
    static{
        System.out.println("Son静态块");
    }

    {
        System.out.println("Son构造块");
    }

    public Son() {
        System.out.println("Son构造器");
    }

    @Override
    void func1() {
        System.out.println("Son方法 1");
    }

    void func2() {
        System.out.println("Son方法 2");
    }

}

结果:

Father静态块
Son静态块
Father构造块
Father构造器
Son构造块
Son构造器
Son方法 1

 







以上是关于Java中static块,构造块,构造函数的执行顺序的主要内容,如果未能解决你的问题,请参考以下文章

类和对象的加载先后

java中静态代码块,非静态代码块,构造函数执行顺序

Java中静态代码块构造代码块的区别

java-普通代码块构造代码块和静态代码块的区别。

Java中的Static静态代码块以及各代码块之间的执行顺序

Java中的Static静态代码块以及各代码块之间的执行顺序