Class

/**
* 類初始化順序:
* <p>
* 1、超類靜態變量;超類靜態初始化塊。--按代碼排列順序;<br>
* 2、子類靜態變量;子類靜態初始化塊。--按代碼排列順序; <br>
* 3、所有的成員變量—包括該類,及它的父類中的成員變量--被分配內存空間,並賦予默認值(這裏是第一次初始化成員變量)。如:subText in
* SubClass constructor:null<br>
* 4、超類成員變量;超類初始化塊。--按代碼排列順序;(這裏是第二次初始化成員變量)<br>
* 5、爲超類所調用的構造函數初始化其參數變量 (如果有參數)<br>
* 6、超類構造函數。此時如果調用子類override函數對子類成員變量進行賦值將不起作用,如本列:_subText<br>
* 7、子類成員變量;子類初始化塊。--按代碼排列順序;如果超類構造函數已經對子類成員變量進行賦值,子類將用初始化值覆蓋,如本列:_subText<br>
* 8、爲子類所調用的構造函數初始化其參數變量 (如果有參數)<br>
* 9、子類構造函數。<br>
*
* @author liugiter

*/

/**
* 1、初始化interface的時候,只會初始化當前interface的field(如果有field),且不會像類一樣遞歸初始化超類.<br>
* 2、對於由引用類變量(class field)所引發的初始化,只會初始化真正定義該field的class <br>
* 3、如果一個static field是編譯時常量(compile-time constant)(即定義爲static final
* field),則對它的引用不會引起定義它的類的初始化。
* ???????????????????接口的初始化?
*
*/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章