第七章 類型成員及其訪問限定
一、類型成員的可能組成:
ü???????? 常數,總是靜態不可變的
ü???????? 字段,分為靜態和實例字段兩種
ü???????? 實例構造器,初始化實例對象
ü???????? 類型構造器,初始化類型的靜態字段
ü???????? 方法,分為靜態和實例方法兩種
ü???????? 重載操作符,并非CLS的一部分,因為并非所有語言均支持之
ü???????? 轉換操作符,不是CLS的一部分,部分語言不支持
ü???????? 屬性,分靜態和實例屬性
ü???????? 事件,分為靜態和實例事件兩種
ü???????? 類型
?
二、訪問限定修飾符:[僅列出c#中的]
C#術語 描述 private 僅可被所定義的類型(或其嵌套類型)訪問 protected 僅可以被所定義的類型(或嵌套類型)或繼承的類型訪問 Internal 僅可以被鎖定義的程序集訪問 protected internal 僅可以被所定義的類型(或嵌套類型)、派生類型以及同一程序集訪問 public 可被任何程序集的任何類型訪問
注:1、默認的訪問方式為Internal
?????? 2、只能選擇上述的一種修飾符,而不可同時指定兩個
?
三、類型預定義特性:
C#術語 描述 abstract 不可被實例化,可用作基類型 sealed 不能用作基類型
注:不可同時使用上述限定符,可通過為sealed修飾的類型提供private構造函數來達到“不可被實例化并不可被繼承”的目的
?
四、字段預定義特性:
C#術語 描述 static 字段為 類型字段 readonly 僅可在構造器中被賦值
注:關于常數和靜態只讀字段的區別,將在第八章詳述
?
五、方法預定義特性
C#術語 描述 static 類型方法,不能訪問實例字段或方法,只能訪問類型方法或類型字段 默認(CLR中稱為Instance) 實例方法,可以訪問實例方法或字段,也可以訪問類型方法或字段 virtual 多態的實現,總調用繼承鏈最末端的實現 new 僅用于虛方法,隱藏基類型的方法實現 override 僅用于虛方法,顯示聲明重寫基類型方法 abstract 僅用于虛方法,派生類必須提供和該抽象方法匹配的實現,含有抽象方法的類型為抽象類型 sealed 僅用于虛方法,派生類不能重寫該方法
注:sealed和abstract不
|