C#類和介面的定義
來源:互聯網
上載者:User
C#中的類定義C#使用class關鍵字來定義類:class MyClass{ // Class members.}預設情況下,類聲明為內部的,即只有當前工程中的代碼才能訪問也可以用internal關鍵字顯式聲明:internal class MyClass{ // Class members.}可以指定類是公用的,即可以由其他工程中的代碼來訪問要用public關鍵字聲明:public class MyClass{ // Class members.}還可以指定類是抽象類別:不能執行個體化,只能繼承,可以有抽象成員,使用關鍵字abstract密封類:不能繼承,使用關鍵字sealed聲明抽象類別:public abstract class MyClass{ // Class members, may be abstract.}抽象類別可以是public的,也可以是internal的聲明密封類:public sealed class MyClass{ // Class members.}抽象類別可以是public的,也可以是internal的可以在類定義中指定繼承,方式是類名後加冒號再加基類名:public class MyClass : MyBase{ // Class members.}注意:在C#中只能有一個基類,如果繼承了個抽象類別,就必須執行所繼承的所有抽象成員(除非衍生類別也是抽象的)編譯器不允許衍生類別的可訪問性比其基類更高即內部類可以繼承於一個公用類,但公用類不能繼承於一個內部類如果沒有指定基類,那麼被定義的類繼承自System.Object還可以在冒號後面指定支援的介面如果指定了基類,冒號後面跟著基類名,再接著一個或多個指定的介面,之間用逗號分割例如:給MyClass指定一個介面:public class MyClass : IMyInterface{ // Class members.}給MyClass指定基類和介面:public class MyClass : MyBase, IMyInterface{ // Class members.}指定多個介面:public class MyClass : MyBase, IMyInterface, IMySecondInterface{ // Class members.}存取修飾詞組合:修飾符 含義none or internal 類只能在當前工程中訪問public 類可以在任何地方訪問abstract or internal abstract 類只能在當前工程中訪問,不能執行個體化,只能繼承public abstract 類可以在任何地方訪問,不能執行個體化,只能繼承sealed or internal sealed 類只能在當前工程中訪問,不能派生,只能執行個體化public sealed 類可以在任何地方訪問,不能派生,只能執行個體化介面的定義與類的聲明方式類似,使用interface關鍵字:interface IMyInterface{ // Interface members.}修飾符關鍵字public和internal的使用方式相同:public interface IMyInterface{ // Interface members.}關鍵字abstract和sealed不能在介面中使用因為介面不包含執行代碼,不能直接執行個體化,而且必須可以繼承介面繼承跟類相似,不過可以使用多個基底介面:public interface IMyInterface : IMyBaseInterface, IMyBaseInterface2{ // Interface members.}介面不是類,不從System.Object繼承由於多態性使System.Object的成員可以使用這些介面System.Object公用建構函式Object 初始化 Object 類的新執行個體。公用方法Equals 已重載。 確定兩個 Object 執行個體是否相等。 GetHashCode 用作特定類型的雜湊函數。GetType 擷取當前執行個體的 Type。 ReferenceEquals 確定指定的 Object 執行個體是否是相同的執行個體。 ToString 返回表示當前 Object 的 String。 受保護的方法 Finalize 解構函式MemberwiseClone 建立當前 Object 的淺表副本。