C# 【方法】默認訪問級別 : private
C# 【類】和【結構體】默認訪問級別 : internal
1.命名空間下的元素的訪問修飾符
public: 同一程序集的其他任何代碼或引用該程序集的其他程序集都可以訪問該類型或成員。
internal: 同一程序集中的任何代碼都可以訪問該類型或成員,但其他程序集不可以訪問?!灸軌蛐揎楊惖脑L問修飾符只有 internal 和 public】
private: 同一類和結構的代碼可以訪問該類型和成員。
protected: 同一類和派生(繼承特性)類中的代碼可以訪問該類型和成員。
protected internal: ?同一程序集中的任何代碼或其他程序集中的任何派生類都可以訪問該類型或成員。
MSDN提示 :
1) 派生類的可訪問性不能高于其基類型。換句話說,不能有從內部類 A 派生公共類 B。如果允許這種情況,將會使 A 成為公共類,因為 A 的所有受保護的成員或內部成員都可以從派生類訪問。
2) 成員的可訪問性決不能高于其包含類型的可訪問性。
3) 可以使用五種訪問類型中的任何一種來聲明類成員(包括嵌套的類和結構)。
接口(interface )
接口成員訪問修飾符默認為public,且不能顯示使用訪問修飾符。
為了多態,接口不能被實例化;子類實現接口的方法時,不需要任何關鍵字,直接實現即可;接口存在的意義就是為了多態。
接口中只能有方法、屬性、索引器、事件,不能有字段和構造函數。
類(class)
構造函數默認為public 訪問修飾符。
析構函數不能顯示使用訪問修飾符且默認為private 訪問修飾符。
類的成員默認訪問修飾符為 private。
枚舉(enum)
枚舉類型成員默認為public 訪問修飾符,且不能顯示使用修飾符。
結構(struct)
結構成員默認為private 修飾符。
結構成員無法聲明為 protected 成員,因為結構不支持繼承。
嵌套類型
嵌套類型的默認訪問修飾符為 private。 和類,結構的成員默認訪問類型一致。
除了權限修飾符外還有四個修飾符 sealed,abstract,virtual,partial (這4個修飾符可以和上面5個權限修飾符一起用,可以加在權限修飾符前面或后面),
密封類(sealed)
sealed 只能用來修飾 class,表示 class 不能被繼承。
抽象方法(abstract)
1.需要用 abstract 關鍵字標記。
2.抽象方法無法聲明主體。
3.抽象成員必須包含在抽象類中。
4.由于抽象成員沒有任何實現,所以子類必須將抽象成員重寫。
5.抽象類不能實例化,抽象類的作用就是為了讓子類繼承。
6.抽象類中可以包括抽象成員,可以包括有具體代碼的成員。
7.抽象方法不能用 static 修飾。
虛方法(virtual)
1.父類中如果有方法需要讓子類重寫,則可以將該方法標記為 virtual。
2.虛方法在父類中必須聲明主體,哪怕是【空實現】。
3.虛方法子類可以重寫(override),也可以不重寫。