1樓:匿名使用者
1、介面的概念及宣告
介面是一種用來定義程式的協議,它描述可屬於任何類或結構的一組相關行為。介面可有方法、屬性、事件和索引器或這四種成員的任何組合型別,但不能包含欄位。
那麼介面具有哪些特點呢?
·介面類似於抽象基類:繼承介面的任何非抽象型別都必須實現介面的所有成員(說明:如類a繼承介面b,那麼a中必須實現b中定義的屬性,方法等)。
·不能直接例項化介面
·介面可以包含事件、索引器、方法和屬性
·介面不包含方法的實現
·類和介面可以從多個介面繼承
·介面自身可以繼承多個介面
在宣告介面時除了inte***ce和介面名稱是必須的,其他都是可選項。另可使用new、public、protected、intenal和private等修飾符實現介面,但介面成員必須是公共的。
2、介面的實現與繼承
宣告實現介面的類時,需要在基類列表中包含類所實現的介面的名稱。
下面舉個小例子來**下:
using system;
using system.collections.generic;
using system.text;
namespace _
////// 姓名(可讀可寫)
///string name
////// 顯示定義的編號和姓名
///void showinfo();
}class program:imyinte***ce//繼承自介面
set}
////// 姓名
///public string name
set}
////// 顯示定義的編號和姓名
///public void showinfo()
static void main(string args)}}
上面的這個例子是一個簡單的一個類繼承一個介面,如要實現介面類中對應的成員必須是公共的、非靜態的,並且與介面成員具有相同的名稱和簽名。並且介面的例項化不能像類那樣program program = new program();其中上述程式中紅色部分即為介面的例項化(使用派生類物件例項化介面)。
單一繼承時這樣的,那麼多重繼承呢?ok,我們來看下個例子:
using system;
using system.collections.generic;
using system.text;
namespace _
////// 性別
///string ***
}inte***ce iteacher:ipeople //繼承公共介面
inte***ce istudent:ipeople //繼承公共介面
class program:ipeople,iteacher,istudent//多介面繼承
set}
////// 性別
///public string ***
set}
////// 教學方法
///public void teach()
////// 學習方法
///public void study()
static void main(string args)}}
上述的多重繼承中說明了,在派生類中必須實現所繼承的介面中的所有方法。ok,單一繼承和多重繼承都有了瞭解之後,是不是沒有其他的需要了解的呢?試想一下,如果在一個類a繼承自介面b和c,並且在b和c中包含具有相同簽名的成員,那麼在類中實現該成員將導致兩個介面都使用該成員作為他們的實現,然而,如果兩個介面成員實現不同的功能,那麼將會導致一個介面的成員實現不正確或兩個介面的成員實現都不正確,這個時候我們應該如何處理呢?
我們可以顯示的實現介面成員,即建立一個僅通過介面呼叫並且特定於該介面的類成員。
下面也是一個通過一個例項來說明
using system;
using system.collections.generic;
using system.text;
namespace _
inte***ce imyinte***ce2
class myclass : imyinte***ce1, imyinte***ce2 //繼承介面
////// 求和方法
////// 加法運算的和
int imyinte***ce2.add() //顯式介面成員實現
}class program}}
上面的例項中在myclass類中,通過兩個顯示介面成員的方法分別實現了兩個介面中的add方法,在例項化不同的介面後,呼叫相應的方法實現輸出結果。
2樓:匿名使用者
介面總的來說是一種協議,c#中實現介面的關鍵字是inte***ce。
形式如下:
inte***ce ianimal
注意: 介面中的方法,前面不能加public/private。
DVI介面是什麼,什麼是DVI介面?
dvi介面 一種用於高速傳輸數字訊號的技術 什麼是dvi介面?dvi介面 一種用於高速傳輸數字訊號的技術 dvi介面有什麼作用?dvi介面 一種用於高速傳輸數字訊號的技術 dvi是接電視用的 其他的不用解釋了吧 dvi介面和hdmi介面有什麼區別?區別大了去了,首先,vga介面是這三種中最落後的,這...
c語言圖形介面怎麼做出來,C語言圖形介面怎麼做出來?
windows平臺下,含入windows.h,就可以編寫圖形介面的程式了。跟程序導向還是物件導向沒有關係。並且c 寫介面一點都不麻煩,它也有很多類庫可以讓你選擇,如vcl,mfc,還有qt之類的跨平臺庫。初學者很想寫windows圖形介面的程式,推薦c builder,雖然現在它的發展不太明朗,但寫...
主機板這個介面是什麼,電腦主機板上這是什麼介面呢?
這個是ps 2的介面,老式的鍵盤和滑鼠的連線口,這個介面的插頭是圓形的,裡面是針腳。現在的鍵盤滑鼠一般都是usb介面,這個介面現在基本用不到。ps 2介面 老式的滑鼠和鍵盤就是用這個介面。ps 2介面 ps 2介面是一種pc相容型計算機系統上的介面,可以用來連結鍵盤及滑鼠。ps 2的命名來自於198...