第二節(jié) 定義接口
從技術(shù)上講,接口是一組包含了函數(shù)型方法的數(shù)據(jù)結(jié)構(gòu)。通過這組數(shù)據(jù)結(jié)構(gòu),客戶代碼可以調(diào)用組件對象的功能。
定義接口的一般形式為:
[attributes] [modifiers] interface identifier [:base-list] {interface-body}[;]
說明:
1、attributes(可選):附加的定義性信息。
2、modifiers(可選): 允許使用的修飾符有 new 和四個訪問修飾符。分別是:new、public、protected、internal、 private。在一個接口定義中同一修飾符不允許出現(xiàn)多次,new 修飾符只能出現(xiàn)在嵌套接口中,表示覆蓋了繼承而來的同名成員。the public, protected, internal, and private 修飾符定義了對接口的訪問權(quán)限。
3、指示器和事件。
4、identifier:接口名稱。
5、base-list(可選):包含一個或多個顯式基接口的列表,接口間由逗號分隔。
6、interface-body:對接口成員的定義。
7、接口可以是命名空間或類的成員,并且可以包含下列成員的簽名: 方法、屬性、索引器 。
8、一個接口可從一個或多個基接口繼承。
接口這個概念在c#和java中非常相似。接口的關(guān)鍵詞是interface,一個接口可以擴展一個或者多個其他接口。按照慣例,接口的名字以大寫字母"i"開頭。下面的代碼是c#接口的一個例子,它與java中的接口完全一樣:
interface ishape {
void draw ( ) ;
}
如果你從兩個或者兩個以上的接口派生,父接口的名字列表用逗號分隔,如下面的代碼所示:
interface inewinterface: iparent1, iparent2 { }
然而,與java不同,c#中的接口不能包含域(field)。另外還要注意,在c#中,接口內(nèi)的所有方法默認都是公用方法。在java中,方法定義可以帶有public修飾符(即使這并非必要),但在c#中,顯式為接口的方法指定public修飾符是非法的。例如,下面的c#接口將產(chǎn)生一個編譯錯誤。
interface ishape { public void draw( ) ; }
下面的例子定義了一個名為icontrol 的接口,接口中包含一個成員方法paint:
interface icontrol {
void paint( ) ;
}
在下例中,接口 iinterface從兩個基接口 ibase1 和 ibase2 繼承:
interface iinterface: ibase1, ibase2 {
void method1( ) ;
void method2( ) ;
}
共2頁: 上一頁 1 [2] 下一頁
新聞熱點
疑難解答
圖片精選