加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java中的静态关键字

发布时间:2020-12-14 05:07:01 所属栏目:Java 来源:网络整理
导读:class A { static { System.out.println("A-SIB"); } static void test(){ System.out.println("A-test"); }}class B extends A { static { System.out.println("B-SIB"); }}class C { public static void main(String args []){ B.test(); }} 当我跑C级时,
class A {
    static {
        System.out.println("A-SIB");
    }
    static void test(){
        System.out.println("A-test");
    }
}

class B extends A  {
    static {
        System.out.println("B-SIB");
    }
}

class C  {
    public static void main(String args []){
        B.test();
    }
}

当我跑C级时,我认为A-SIB,B-SIB和A-test将被打印出来,但是B-SIB不在输出中.有人可以解释为什么吗?

解决方法

B类没有实现(也就是“隐藏”)静态测试方法,所以初始执行开始于A类(因此是A-SIB);然后用A中的测试方法(因此“A测试”).如果您在B类中覆盖测试,您将获得A-SIB B-SIB B检验

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读