public class testa
}
/**類b**/
public class testb
}
/**類 parent **/
public class parent
private testa testa2 = newtesta("parent變數");
public parent()
}
/**parent的子類subclass**/
public class subclass extends parent
private static testa testa2 = new testa("subclass的靜態變數2");
static
private testa testa3 = newtesta("subclass變數1");
private testa testa4 = newtesta("subclass變數2");
public subclass()
publicstatic void main(string args)
} 列印結果如下:
parent的靜態變數
parent的靜態初始化模組
subclass的靜態變數1
subclass的靜態初始化模組1
subclass的靜態變數2
subclass的靜態初始化模組2
parent變數
parent的初始化模組
parent的建構函式
subclass變數1
subclass的初始化模組1
subclass變數2
subclass的初始化模組2
subclass的建構函式
說明 :
1.靜態變數與靜態模組是最先初始化的,因為它是屬於類的變數和模組.
2.parent的構造器要先於它的子類,這一點是肯定的,但parent的變數,初始化模組要先於它的子類,這一點可能理解起來有點困難,但我們只要知道父類的構造器先於子類,它的變數與模組也是理所當然的,這樣理解起來會比較合理.
3.靜態變數與靜態模組的初始化順序是根據在類裡面定義的順序,同理變數化初始化模組的順序也是根據類裡面定義的順序(上面結果的紅色部門)
MFC程式執行順序
2 winmain登場 extern c int winapi twinmain hinstance hinstance,hinstance hprevinstance,lptstr lpcmdline,int ncmdshow twinmain函式的 t 是為了支援unicode而準備的乙個巨集。...
MFC程式執行順序
2 winmain登場 extern c int winapi twinmain hinstance hinstance,hinstance hprevinstance,lptstr lpcmdline,int ncmdshow twinmain函式的 t 是為了支援unicode而準備的乙個巨集。...
Java程式執行順序
1 靜態塊 父類靜態塊 子類靜態塊 2 父類塊 父類構造器 3 子類塊 子類構造器 也就是 靜態塊優於其他 塊和構造器,然後是父類中的 塊和者構造器 最後才是子類中的 塊和者構造器。public class mastiff extends dog 方法塊 構造器 public mastiff pub...