首页 > 试题广场 >

下面java程序的运行结果是 class A { s

[单选题]
下面java程序的运行结果是
class A {
    static {
        System.out.print("A");
    }
    public A() {
        System.out.print("a");
    }
}
class B extends A {
    static {
        System.out.print("B");
    }
    public B() {
        System.out.print("b");
    }
}
public class Hello {
    public static void main(String[] args) {
        A ab = new B();
        ab = new B();
    }
}
  • ABabABab
  • AaBbAaBb
  • ABabab
  • AaBbBb
代码的执行顺序是 父类静态代码块>子类静态代码块>父类方法>子类方法
当程序执行完   A ab = new B();  数据结果ABab
在执行到ab = new B() 由于静态代码在内存中是存在的 只会再次执行非静态的方法
如果是
A ab = new B();
A abc = new B();
结果同样是:ABabab
-----------------------------------
请各位大佬在看到错误后给出指正。
编辑于 2018-07-18 21:00:53 回复(0)