C# 介面
阿新 • • 發佈:2020-08-14
C#介面(Interface)
介面定義了所有類繼承介面時應遵循的語法合同。介面定義了語法合同"是什麼"部分,派生類定義了語法合同"怎麼做"部分。
介面定義了屬性、方法和事件,這些都是介面的成員。介面只包含了成員的宣告。成員的定義是派生類的責任。介面提供了派生類應遵循的標準結構。
介面使得實現介面的類或結構在形式上保持一致。
抽象類在某種程度上與介面類似,但是,它們大多隻是用在當只有少數方法由基類宣告由派生類實現時。
定義介面:Interface.cs
介面使用interface關鍵字宣告,它與類的宣告類似。介面宣告預設是 public 的。下面是一個介面宣告的例項:
interfaceIInterfacevoidMethodToImplement();
}
以上程式碼定義了介面 IInterface。通常介面命令以I字母開頭,這個介面只有一個方法 MethodToImplement(),沒有引數和返回值,當然我們可以按照需求設定引數和返回值。
值得注意的是,該方法並沒有具體的實現。
接下來來實現以上介面:
public static void run() { Implementer imp = new Implementer(); imp.MethodToImplement(); } //實現介面class Implementer:IInterface { public void MethodToImplement() { Console.WriteLine("MethodToImplement call()"); } } interface IInterface { void MethodToImplement(); }
InterfaceImplementer 類實現了 IInterface 介面,介面的實現與類的繼承語法格式類似:
class Implementer : IInterface
繼承介面後,我們需要實現介面的方法 MethodToImplement() , 方法名必須與介面定義的方法名一致。
介面繼承:
以下例項定義了兩個介面 IInterface 和 IParentInterface。
如果一個介面繼承其他介面,那麼實現類或結構就需要實現所有介面的成員。
以下例項 IInterface 繼承了 IParentInterface 介面,因此介面實現類必須實現 MethodToImplement() 和 ParentInterfaceMethod() 方法:
public static void run() { Implementer imp = new Implementer(); imp.MethodToImplement(); imp.ParentInterfaceMethod(); } //實現介面 class Implementer:IInterface { public void MethodToImplement() { Console.WriteLine("MethodToImplement call()"); } public void ParentInterfaceMethod() { Console.WriteLine(" ParentInterfaceMethod call()"); } } //介面繼承 interface IInterface :IParentInterface { void MethodToImplement(); } interface IParentInterface { void ParentInterfaceMethod(); }
MethodToImplement call()
ParentInterfaceMethod call()