參考:https://blog.csdn.net/owenchan1987/article/details/52879774
https://www.cnblogs.com/mcxiaotan/p/8059173.html
Java程序初始化一般遵循3個原則:
1. 靜態對象(變量)優先於非靜態對象(變量)初始化。其中靜態對象(變量)只初始 化一次,而非靜態對象(變量)可能會初始化很多次
2. 父類優先於子類進行初始化
3. 按照成員變量的定義順序進行初始化。即使變量定義散佈於方法之中,他們依然在任何方法(包括構造函數)被調用前先初始化
總結:1. 父類static(順序按照代碼書寫順序進行)
2. 子類static(順序按照代碼書寫順序進行)
3. 父類非static域(順序按照代碼書寫順序進行) 父類構造器
4. 子類非static域(順序按照代碼書寫順序進行) 子構造器器