java 继承 面试

class A {
    static {
        System.out.print("1");
    }

    public A() {
        System.out.print("2");
    }
}

class B extends A {
    static {
        System.out.print("a");
    }

    public B() {
        System.out.print("b");
    }
}

public class Test {
    public static void main(String[] ars) {
        A ab = new B(); // 执行到此处,结果: 1a2b
        ab = new B(); // 执行到此处,结果: 1a2b2b
    }
}
class A {
    static {
        System.out.print("1");
    }

    public A() {
        System.out.print("2");
    }
}

class B extends A {
    static {
        System.out.print("a");
    }

    public B() {
        System.out.print("b");
    }
}

public class Test {
    public static void main(String[] ars) {
        A ab = new B(); // 执行到此处,结果: 1a2b
        ab = new B(); // 执行到此处,结果: 1a2b2b   静态代码区只执行一次。
    }
}

 

posted @ 2016-10-08 19:58  暖暖要坚持  阅读(204)  评论(0编辑  收藏  举报