初始化過程:
1. 初始化父類中的靜態成員變數和靜態**塊 ;
2. 初始化子類中的靜態成員變數和靜態**塊 ;
3.初始化父類的普通成員變數和**塊,再執行父類的構造方法;
4.初始化子類的普通成員變數和**塊,再執行子類的構造方法;
class x
}class y
}public
class
zextends
x public
static
void
main(string args)
}
(1)初始化父類的普通成員變數和**塊,執行 y y=new y(); 輸出y
(2)再執行父類的構造方法;輸出x
(3) 初始化子類的普通成員變數和**塊,執行 y y=new y(); 輸出y
(4)再執行子類的構造方法;輸出z
所以輸出yxyz
類的載入順序
直接上 熱乎的 package test 有父類的情況 1.載入父類 1.1 為靜態屬性分配儲存空間並賦初始值 1.2 執行靜態初始化塊和靜態初始化語句 從上至下 2.載入子類 2.1 為靜態屬性分配儲存空間 2.2 執行靜態初始化塊和靜態初始化語句 從上至下 3.載入父類構造器 3.1 為例項屬性...
類的載入順序
類載入的順序 1.載入靜態成員 塊 先遞迴地載入父類的靜態成員 塊 object的最先 再依次載入到本類的靜態成員。同乙個類裡的靜態成員 塊,按寫 的順序載入 靜態 塊和靜態成員誰在前面就先載入誰 如果其間呼叫靜態方法,則呼叫時會先執行靜態方法,再繼續載入。同乙個類裡呼叫靜態方法時,可以不理會寫 的...
類的載入順序
public class base public void callname static class sub extends base public static void main string args 執行base b new sub 時由於多型 b編譯時表現為base類特性,執行時表現為s...