Java中的静态关键字

前端之家收集整理的这篇文章主要介绍了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级时,我认为A-SIB,B-SIB和A-test将被打印出来,但是B-SIB不在输出中.有人可以解释为什么吗?

解决方法

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

猜你在找的Java相关文章