美文网首页
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