類的靜態域 構造器 成員域 靜態屬性載入順序

2021-10-09 12:48:07 字數 1300 閱讀 2351

建立類a

public class a 

static

}

類b繼承a

public class b extends a

static

}

測試執行

public static void main(string args)
a靜態域

b靜態域

a成員域

a構造器

b成員域

b構造器

process finished with exit code 0

可以看到順序為父類靜態域-》子類靜態域-》父類成員域-》父類構造器-》子類成員域-》子類構造器

public static void main(string args) 

class a

static

}class b extends a

static

}

控制台會輸出

bb

process finished with exit code 0

為什麼只輸出了這個字段?而沒有初始化物件,這個是為什麼呢?

而我們把 字串改為

public static  final string bstr = new string("bb");
控制台的輸出為

a靜態域

b靜態域

bbprocess finished with exit code 0

我們可以看看呼叫父類中的靜態字段屬性的異同

public static void main(string args) 

class a

static

}class b extends a

static

}

控制台輸出

aa

process finished with exit code 0

將字段屬性改為

public static final string str = new string("aa");
a靜態域

aaprocess finished with exit code 0

靜態類 靜態成員 靜態建構函式

靜態類的主要特性 1 僅包含靜態成員。2 無法例項化。3 是密封的。4 不能包含例項建構函式。靜態成員 1 非靜態類可以包含靜態的方法 字段 屬性或事件 2 無論對乙個類建立多少個例項,它的靜態成員都只有乙個副本 3 靜態方法和屬性不能訪問其包含型別中的非靜態欄位和事件,並且不能訪問任何物件的例項變...

C 中的靜態類 靜態成員 靜態建構函式

關鍵字static修飾的類稱之為靜態類。靜態類不能例項化。static關鍵字可以防止程式設計師寫 例項化靜態類,也可以防止在靜態類的內部宣告任何例項成員。c 編譯器會自動把靜態類標記為sealed,這個關鍵字將類指定為不可擴充套件 不能從它派生出其他類 靜態類特性 僅包含靜態成員 無法例項化 屬於密...

c 類的靜態成員,建構函式

一 靜態成員 靜態成員是處理同乙個類的不同物件之間資料和函式共享問題的。1.靜態資料成員 我們所說的 乙個類的所有物件具有相同的屬性 是指例項屬性,以非靜態資料成員表示,如employee中的empno.id.它們在類的每乙個物件中都具有乙個複本,是每個物件區別於其他物件的特徵。如果某個屬性為整個類...