Java - 继承(代码块与静态代码块)

2022-06-17  本文已影响0人  aven_kang
public class superTest {

    {

        System.out.println("代码块");
    }

    static  {
        System.out.println("静态代码块");
    }

    superTest() {

        System.out.println("superTest初始化");

    }

    public static void main(String[] args) {

        superTest sup1 = new superTest();
        superTest sup2 = new superTest();

    }
}

这个是父类,实现了了代码块跟静态代码块,执行顺序是
静态代码块->代码块->构造函数
如果这个时候一个子类继承了superTest,在子类中重写了代码块函数,那么执行的顺序又会是怎么样,先看看子类的代码

public class superSubTest extends superTest{

    superSubTest() {
        super();
    }

    public static void main(String[] args) {


        {
            System.out.println("subTest的代码块");
        }



        superSubTest sub1 = new superSubTest();

    }
}

直接上打印结果吧

静态代码块
subTest的代码块
代码块
superTest初始化
subTest的构造函数

可以看出静态代码块只会执行一次,而代码块函数,是先执行内部函数,再执行父类的代码块,然后执行父类的构造函数,最后执行子类的构造函数

上一篇下一篇

猜你喜欢

热点阅读