美文网首页
JAVA 测试III

JAVA 测试III

作者: tenlee | 来源:发表于2016-08-13 09:26 被阅读29次

    记录一下遇见和做过的JAVA编程题...


    JAVA 测试I http://www.jianshu.com/p/76b36d18844d
    JAVA 测试II http://www.jianshu.com/p/e7f7d29b185a
    JAVA 测试III http://www.jianshu.com/p/64d3495989a5

    1

    下面这段代码输出什么?

    class A {
        static int a = 1;
        static {
            System.out.println(a);
        }
        public A() {
            System.out.println(a);
        }
    }
    class B extends A {
        static int a = 2;
        static {
            System.out.println(a);
        }
        public B() {
            System.out.println(a);
        }
    }
    public class Test {
        public static void main(String args[]) {
            B a = new B();
        }
    }
    

    解析: 继承关系下, 不管是把子类实例化,还是调用子类的静态方法等, 一定是先初始化父类的静态块,在初始化子类的静态块, 然后是父类的非静态块,子类的非静态块, 再然后 父类的构造方法,子类的构造方法.
    故输出 ** 1 2 1 2**

    相关文章

      网友评论

          本文标题:JAVA 测试III

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