美文网首页
Java - 继承(代码块与静态代码块)

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

作者: aven_kang | 来源:发表于2022-06-17 23:12 被阅读0次
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的构造函数

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

相关文章

网友评论

      本文标题:Java - 继承(代码块与静态代码块)

      本文链接:https://www.haomeiwen.com/subject/kikwsrtx.html