接口定義了所有類繼承接口時應遵循的文法合同。接口定義了文法合同 "是什麼" 部分,派生類定義了文法合同 "怎麼做" 部分。
接口定義了屬性、方法和事件,這些都是接口的成員。接口隻包含了成員的聲明。成員的定義是派生類的責任。接口提供了派生類應遵循的标準結構。
接口使得實作接口的類或結構在形式上保持一緻。
抽象類在某種程度上與接口類似,但是,它們大多隻是用在當隻有少數方法由基類聲明由派生類實作時。
定義接口: MyInterface.cs
接口使用 interface 關鍵字聲明,它與類的聲明類似。接口聲明預設是 public 的。下面是一個接口聲明的執行個體:
interface IMyInterface
{
void MethodToImplement();
}
以上代碼定義了接口 IMyInterface。通常接口指令以 I 字母開頭,這個接口隻有一個方法 MethodToImplement(),沒有參數和傳回值,當然我們可以按照需求設定參數和傳回值。
值得注意的是,該方法并沒有具體的實作。
接下來我們來實作以上接口:InterfaceImplementer.cs
執行個體
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 接口,接口的實作與類的繼承文法格式類似:
class InterfaceImplementer : IMyInterface
繼承接口後,我們需要實作接口的方法 MethodToImplement() , 方法名必須與接口定義的方法名一緻。
接口繼承: InterfaceInheritance.cs
以下執行個體定義了兩個接口 IMyInterface 和 IParentInterface。
如果一個接口繼承其他接口,那麼實作類或結構就需要實作所有接口的成員。
以下執行個體 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,切記備注 加群,小編将會第一時間邀請你進群!