標籤:bsp 類方法 size real protected rtu 繼承 意義 執行個體
none or internal 類只能在當前的工程中訪問
Public 類可以在任何地方訪問
abstract or internal abstract 類可以在當前的工程中訪問,不能執行個體化,只能繼承
Public abstract 類可以在任何地方訪問,不能執行個體化,只能繼承
sealed or internal sealed 類只能在當前的工程中訪問,只能執行個體化,不能繼承
Public sealed 類可以在任何地方訪問,只能執行個體化,不能繼承
1、用於關鍵字class的修飾符
1)internal 預設修飾符,指定類為內部的,只有當前工程中的代碼才能訪問它
2)public 指定類為公用的,其它工程中的代碼也可以訪問它
3)abstract 指定類為抽象的,不能執行個體化,只能繼承,可以有抽象成員
4)sealed 密封的,不能繼承
其中,internal和public是一對互斥關係,abstract和sealed是一對互斥關係,兩對之間可以互相搭配使用。
預設類定義如下:
class A{}即相當於internal class A{},internal通常是省略的。
2、用於關鍵字interface的修飾符
1)public和private 這對存取修飾詞和關鍵字class的定義是一樣的,由於介面的公用特性通常使用public
2)abstract和sealed 這對修飾符不能在介面中使用,因為它們對介面毫無意義
當定義衍生類別時,如果同時有基類和介面,那麼先寫基類再寫介面,用逗號分開,只能繼承一個基類但可以有多個介面,如:
class DerivedClass:BaseClass,IInterface1,IInterface2
{}
介面定義和繼承如下:
public interface IMyInterface:IInterface1,IInterface2
{}
3 、用於類成員(包括欄位、屬性、方法)的修飾符
1)public--成員可以由任何代碼訪問
2)private--成員只能由本類中的代碼訪問(預設值)
3)internal--成員只能由定義它的工程(裝配件)內部的代碼訪問
4)protected--成員只能由類或衍生類別中的代碼訪問
最後兩個關鍵字可以合并使用,即protected internal,只能由工程(裝配件)中類和衍生類別的代碼訪問。此外與以上關鍵字並行的還有static,表示類的靜態成員,而不是類的執行個體成員。欄位還可以定義為realonly,只能在定義時或建構函式中賦值並賦值後不可更改。
4、類方法還有另外的關鍵字定義
1)virtual--方法可以重寫
2)abstract--方法必須重寫(只用於抽象類別中,如果類方法定義了abstract則class也必須追加abstract)
3)override--方法重載了一個基類方法(如果方法被重載則必須使用該關鍵字)
4)extern--方法定義在其他地方
另:衍生類別的類方法還可以使用new來隱藏基類方法;通過this指向當前類執行個體引用,通過base關鍵字指向基類執行個體引用。
C#的Class的幾個修飾符