特地做了一些嘗試然后把java構(gòu)造器的執(zhí)行順序整理出來.
首先是我測試的代碼:

























FatherProp is construct
Father is construct
SonProp is construct
Son is construct
由此不難看出java類初始化時構(gòu)造函數(shù)調(diào)用順序:
(1)初始化對象的存儲空間為零或null值;
(2)按順序分別調(diào)用父類成員變量和實(shí)例成員變量的初始化表達(dá)式;
(3)調(diào)用父類構(gòu)造函數(shù);(如果實(shí)用super()方法指定具體的某個父類構(gòu)造函數(shù)則使用指定的那個父類構(gòu)造函數(shù))
(4)按順序分別調(diào)用類成員變量和實(shí)例成員變量的初始化表達(dá)式;
(5)調(diào)用類本身構(gòu)造函數(shù)。