父類B代碼如下:
public class B {
public B(){
System.out.println("父類B的構造函數");
}
static {
System.out.println("父類B的中的靜態代碼塊");
}
{
System.out.println("父類B的中的非靜態代碼塊 sya()");
}
}
子類A代碼如下:
public class A extends B{
public A(){
System.out.println("子類A的構造函數");
}
static {
System.out.println("子類A的中的靜態代碼塊");
}
{
System.out.println("子類A的中的非靜態代碼塊 sya()1");
}
public static void main(String[] args) {
A a = new A();
System.out.println("A!");
A a2 = new A();
System.out.println("啟動完成");
}
}
執行順序如下:
父類B的中的靜態代碼塊
子類A的中的靜態代碼塊
父類B的中的非靜態代碼塊 sya()
父類B的構造函數
子類A的中的非靜態代碼塊 sya()1
子類A的構造函數
A!
父類B的中的非靜態代碼塊 sya()
父類B的構造函數
子類A的中的非靜態代碼塊 sya()1
子類A的構造函數
啟動完成