接口定義了全部類繼承接口時應遵循的語法合同。接口定義了語法合同 "是什麼" 部分,派生類定義了語法合同 "怎麼作" 部分。微信
接口定義了屬性、方法和事件,這些都是接口的成員。接口只包含了成員的聲明。成員的定義是派生類的責任。接口提供了派生類應遵循的標準結構。spa
接口使得實現接口的類或結構在形式上保持一致。code
抽象類在某種程度上與接口相似,可是,它們大多隻是用在當只有少數方法由基類聲明由派生類實現時。blog
接口使用 interface 關鍵字聲明,它與類的聲明相似。接口聲明默認是 public 的。下面是一個接口聲明的實例:繼承
interface IMyInterface { void MethodToImplement(); }
以上代碼定義了接口 IMyInterface。一般接口命令以 I 字母開頭,這個接口只有一個方法 MethodToImplement(),沒有參數和返回值,固然咱們能夠按照需求設置參數和返回值。接口
值得注意的是,該方法並無具體的實現。事件
using System; interface IMyInterface { // 接口成員 void MethodToImplement(); } class InterfaceImplementer : IMyInterface { static void Main() { InterfaceImplementer iImp = new InterfaceImplementer(); iImp.MethodToImplement(); } public void MethodToImplement() { Console.WriteLine("MethodToImplement() called."); } }
InterfaceImplementer 類實現了 IMyInterface 接口,接口的實現與類的繼承語法格式相似:ip
class InterfaceImplementer : IMyInterface
繼承接口後,咱們須要實現接口的方法 MethodToImplement() , 方法名必須與接口定義的方法名一致。it
如下實例定義了兩個接口 IMyInterface 和 IParentInterface。class
若是一個接口繼承其餘接口,那麼實現類或結構就須要實現全部接口的成員。
如下實例 IMyInterface 繼承了 IParentInterface 接口,所以接口實現類必須實現 MethodToImplement() 和 ParentInterfaceMethod() 方法:
using System; interface IParentInterface { void ParentInterfaceMethod(); } interface IMyInterface : IParentInterface { void MethodToImplement(); } class InterfaceImplementer : IMyInterface { static void Main() { InterfaceImplementer iImp = new InterfaceImplementer(); iImp.MethodToImplement(); iImp.ParentInterfaceMethod(); } public void MethodToImplement() { Console.WriteLine("MethodToImplement() called."); } public void ParentInterfaceMethod() { Console.WriteLine("ParentInterfaceMethod() called."); } }
實例輸出結果爲:
MethodToImplement() called. ParentInterfaceMethod() called.
想了解更多C#知識,請掃描下方二維碼
需加微信交流羣的,請加小編微信號z438679770,切記備註 加羣,小編將會第一時間邀請你進羣!