面试中碰到的一个面试题,其实我还记得我在《Java编程思想》中也看到过,可能当时还是理解的不够透彻,所以还是没有做对。
A类:
public class A {
{
System.out.print("A");
}
static {
System.out.print("B");
}
A() {
System.out.print("C");
}
A(int i) {
System.out.print("D");
}
public static void main(String[] args) {
B b = new B(10);
}
}
B类:
public class B extends A {
{
System.out.print("E");
}
static {
System.out.print("F");
}
B() {
System.out.print("H");
}
B(int i) {
System.out.print("G");
}
}
执行结果打印是怎样呢?
BFACEG
也就是静态方法,块语句和构造方法都是优先执行父类的!静态方法优先块语句,块语句优先于构造方法。