接口

 


從技術上講,接口是一組包含了函數型方法的數據結構。通過這組數據結構,客戶代碼可以調用組件對象的功能。C#接口定義的一般形式爲:

[attributes] [modifiers] interface identifier [:base-list] {interface-body}[;]

說明:

1、attributes(可選):附加的定義性信息。

2、modifiers(可選): 允許使用的修飾符有 new 和四個訪問修飾符。分別是:new、public、protected、internal、 private。在一個接口定義中同一修飾符不允許出現多次,new 修飾符只能出現在嵌套接口中,表示覆蓋了繼承而來的同名成員。The public, protected, internal, and private 修飾符定義C#接口的訪問權限。

3、指示器和事件。

4、identifier:接口名稱。

5、base-list(可選):包含一個或多個顯式基接口的列表,接口間由逗號分隔。

6、interface-body:對接口成員的定義。

7、接口可以是命名空間或類的成員,並且可以包含下列成員的簽名: 方法、屬性、索引器 。

8、一個接口可從一個或多個基接口繼承。

接口這個概念在C#和Java中非常相似。接口的關鍵詞是interface,一個接口可以擴展一個或者多個其他接口。按照慣例,接口的名字以大寫字母"I"開頭。下面的代碼是C#接口定義的一個例子,它與Java中的接口完全一樣:

  1. interfaceIShape{  
  2. voidDraw();  

如果你從兩個或者兩個以上的接口派生,父接口的名字列表用逗號分隔,如下面的代碼所示:

  1. interface INewInterface: IParent1, IParent2 {   

然而,與Java不同,C#接口不能包含域(Field)。另外還要注意,在C#中,接口內的所有方法默認都是公用方法。在Java中,方法定義可以帶有public修飾符(即使這並非必要),但在C#中,顯式爲接口的方法指定public修飾符是非法的。例如,下面的C#接口將產生一個編譯錯誤。

  1. interface IShape { public void Draw( ) ;   

下面的例子定義了一個名爲IControl 的接口,接口中包含一個成員方法Paint:

  1. interfaceIControl{  
  2. voidPaint();  

在下例中,接口 IInterface從兩個基接口 IBase1 和 IBase2 繼承:

  1. interface IInterface: IBase1, IBase2 {  
  2. void Method1( ) ;  
  3. void Method2( ) ;  

接口可由類實現。實現的接口的標識符出現在類的基列表中。例如:

  1. classClass1:Iface1,Iface2{  
  2. //class成員。  

類的基列表同時包含基類和接口時,列表中首先出現的是基類。以上介紹C#接口定義學習經驗。

發佈了14 篇原創文章 · 獲贊 23 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章