如以下面試題:
/**
* @author hjs
* @date 2019/3/62:41
* @Dec
*/
public class B {
public static B t1 = new B();
public static B t2 = new B();
{
System.out.println("父類構造塊");
}
static {
System.out.println("父類靜態塊");
}
}
/**
* @author hjs
* @date 2019/3/62:35
* @Dec
*/
public class A extends B {
public static A t1 = new A();
public static A t2 = new A();
{
System.out.println("構造塊");
}
static {
System.out.println("靜態塊");
}
public static void main(String[] args) {
A t = new A();
}
}
輸出結果:
父類構造塊、父類構造塊、父類靜態塊、父類構造塊、構造塊、父類構造塊、構造塊、靜態塊、父類構造塊、構造塊
B1初始化的:父類構造塊;
B2初始化的:父類構造塊、父類靜態塊
A1初始化的:父類構造塊、構造塊
A2初始化的:父類構造塊、構造塊、靜態塊
main函數創建A時打印的:父類構造塊、構造塊
結論:父類靜態屬性、父類靜態代碼塊、子類靜態屬性、子類靜態代碼塊、代碼塊