實例構造函數與靜態構造函數執行順序


一、結論:
 
1.實例構造函數與靜態構造函數執行順序
 
一、初始化順序(依次是靜態變量、靜態構造函數、實例變量、實例構造函數)
二、初始化次數(靜態的都只會初始化一次)
三、初始化時機(使用類引用任何靜態成員之前 對或者首次實例化類時會調用靜態構造函數,通過靜態構造函數初始化類級別的項,即靜態字段 非靜態的則要在創建對象的時候才初始化);
 
2.創建子類實例時,其所有構造函數和變量的調用順序為:
 
子類靜態變量初始化>子類靜態構造函數>父類靜態變量初始化 > 父類靜態構造函數 > 父類實例變量初始化>父類實例構造函數 > 子類實例變量初始化>本身實例構造函數。
 
 
二、例子:
父類:
 
 
子類:
 
主函數:
 
 
當我創建子類Dog的 實例時,執行結果如下:
 
跟實例構造函數的調用順序剛好相反,所以創建子類實例時,其所有構造函數和變量的調用順序為:
子類靜態變量初始化>子類靜態構造函數>父類靜態變量初始化 > 父類靜態構造函數 > 父類實例變量初始化>父類實例構造函數 > 子類實例變量初始化>本身實例構造函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM