1. 程式人生 > 實用技巧 >C# 介面

C# 介面

C#介面(Interface)

介面定義了所有類繼承介面時應遵循的語法合同。介面定義了語法合同"是什麼"部分,派生類定義了語法合同"怎麼做"部分。

介面定義了屬性、方法和事件,這些都是介面的成員。介面只包含了成員的宣告。成員的定義是派生類的責任。介面提供了派生類應遵循的標準結構。

介面使得實現介面的類或結構在形式上保持一致。

抽象類在某種程度上與介面類似,但是,它們大多隻是用在當只有少數方法由基類宣告由派生類實現時。


定義介面:Interface.cs

介面使用interface關鍵字宣告,它與類的宣告類似。介面宣告預設是 public 的。下面是一個介面宣告的例項:

interfaceIInterface
{
voidMethodToImplement();
}

以上程式碼定義了介面 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()