C#接口的定義是什么

這篇文章主要介紹“C#接口的定義是什么”,在日常操作中,相信很多人在C#接口的定義是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”C#接口的定義是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

創(chuàng)新互聯(lián)建站主營(yíng)昆山網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開發(fā),昆山h5微信小程序開發(fā)搭建,昆山網(wǎng)站營(yíng)銷推廣歡迎昆山等地區(qū)企業(yè)咨詢

全面解析C#接口的定義
C#接口的定義從技術(shù)上講,接口是一組包含了函數(shù)型方法的數(shù)據(jù)結(jié)構(gòu)。通過(guò)這組數(shù)據(jù)結(jié)構(gòu),客戶代碼可以調(diào)用組件對(duì)象的功能。

C#接口的定義一般形式為:

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

C#接口的定義說(shuō)明:

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

· modifiers(可選):允許使用的修飾符有new和四個(gè)訪問(wèn)修飾符。分別是:new、public、protected、internal、private。在一個(gè)接口定義中同一修飾符不允許出現(xiàn)多次,new修飾符只能出現(xiàn)在嵌套接口中,表示覆蓋了繼承而來(lái)的同名成員。The public, protected, internal, and private修飾符定義了對(duì)接口的訪問(wèn)權(quán)限。

· 指示器和事件。

· identifier:接口名稱。

· base-list(可選):包含一個(gè)或多個(gè)顯式基接口的列表,接口間由逗號(hào)分隔。

· interface-body:對(duì)接口成員的定義。

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

· 一個(gè)接口可從一個(gè)或多個(gè)基接口繼承。

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

interface IShape  {       void Draw ( ) ;  }

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

interface INewInterface: IParent1, IParent2 { }

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

interface IShape { public void Draw( ) ; }

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

interface IControl {  void Paint( ) ;  }

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

interface IInterface: IBase1, IBase2 {     void Method1( ) ;     void Method2( ) ;  }

接口可由類實(shí)現(xiàn)。實(shí)現(xiàn)的接口的標(biāo)識(shí)符出現(xiàn)在類的基列表中。例如:

class Class1: Iface1, Iface2 {     // class 成員。  }

類的基列表同時(shí)包含基類和接口時(shí),列表中首先出現(xiàn)的是基類。例如:

class ClassA: BaseClass, Iface1, Iface2 {     // class成員。  }

以下的代碼段定義接口IFace,它只有一個(gè)方法:

interface IFace {    void ShowMyFace( ) ;  }

不能從這個(gè)定義實(shí)例化一個(gè)對(duì)象,但可以從它派生一個(gè)類。因此,該類必須實(shí)現(xiàn)ShowMyFace抽象方法:

class CFace:IFace  {    public void ShowMyFace( )   {      Console.WriteLine(" implementation " ) ;     }   }

C#接口的定義之基接口

一個(gè)接口可以從零或多個(gè)接口繼承,那些被稱為這個(gè)接口的顯式基接口。當(dāng)一個(gè)接口有比零多的顯式基接口時(shí),那么在接口的定義中的形式為,接口標(biāo)識(shí)符后面跟著由一個(gè)冒號(hào)":"和一個(gè)用逗號(hào)","分開的基接口標(biāo)識(shí)符列表。

C#接口的定義之接口基:

接口類型列表說(shuō)明:

· 一個(gè)接口的顯式基接口必須至少同接口本身一樣可訪問(wèn)。例如,在一個(gè)公共接口的基接口中指定一個(gè)私有或內(nèi)部的接口是錯(cuò)誤的。

· 一個(gè)接口直接或間接地從它自己繼承是錯(cuò)誤的。

· 接口的基接口都是顯式基接口,并且是它們的基接口。換句話說(shuō),基接口的集合完全由顯式基接口和它們的顯式基接口等等組成。在下面的例子中

interface IControl {   void Paint( ) ;  }  interface ITextBox: IControl {   void SetText(string text) ;  }  interface IListBox: IControl {   void SetItems(string[] items) ;  }  interface IComboBox: ITextBox, IListBox { }

IComboBox 的基接口是IControl, ITextBox, 和 IlistBox。

· 一個(gè)接口繼承它的基接口的所有成員。換句話說(shuō),上面的接口IComboBox就像Paint一樣繼承成員SetText 和 SetItems。

· 一個(gè)實(shí)現(xiàn)了接口的類或結(jié)構(gòu)也隱含地實(shí)現(xiàn)了所有接口的基接口。

C#接口的定義之接口主體

一個(gè)接口的接口主體定義接口的成員。

interface-body:  {   interface-member-declarationsopt   }

到此,關(guān)于“C#接口的定義是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

分享標(biāo)題:C#接口的定義是什么
當(dāng)前鏈接:http://bm7419.com/article2/gijsic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、企業(yè)網(wǎng)站制作、品牌網(wǎng)站建設(shè)動(dòng)態(tài)網(wǎng)站、定制網(wǎng)站小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開發(fā)