面試中碰到的一個面試題,其實我還記得我在《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
也就是靜態方法,塊語句和構造方法都是優先執行父類的!靜態方法優先塊語句,塊語句優先於構造方法。