静态代码块构造方法结合笔试题

2017年11月7日星期二   某公司校招笔试题

class A {

private static A a=new A();

static{

System.out.print("static");

}

public A(){

System.out.print("A");

}

}

public class B extends A{

public B(){

System.out.print("B");

}

public static voidmain(String[] args) {

B b=new B();

}

 

}

 当我初次看到这道题时,挺郁闷的,没办法,菜鸟诶……其实,这道题得仔细的分析。首先,主函数new B()触发,A类中两个static先执行,private static Aa=new A(),这个先运行,于是,构造方法A()就执行了,输出了a,接着,static块运行了,于是,输出了static,两个静态代码就算完毕了。

接着是A类中的构造方法开始执行,输出A,接着B类中的构造方法执行,输出B,综合即AstaticAB.本道题的答案即为AstaticAB


你可能感兴趣的:(java面试小实例)