C#簡單了解接口(Interface)使用方法
繼承"基類"跟繼承"接口"都能實現(xiàn)某些相同的功能,但有些接口能夠完成的功能是只用基類無法實現(xiàn)的
1.接口用于描述一組類的公共方法/公共屬性. 它不實現(xiàn)任何的方法或?qū)傩?,只是告訴繼承它的類 《至少》要實現(xiàn)哪些功能,繼承它的類可以增加自己的方法.
2.使用接口可以使繼承它的類: 命名統(tǒng)一/規(guī)范,易于維護(hù).比如: 兩個類 "狗"和"貓",如果它們都繼承了接口"動物",其中動物里面有個方法Behavior(),那么狗和貓必須得實現(xiàn)Behavior()方法,并且都命名為Behavior這樣就不會出現(xiàn)命名太雜亂的現(xiàn)象.如果命名不是Behavior(),接口會約束即不按接口約束命名編譯不會通過.
3.提供永遠(yuǎn)的接口。 當(dāng)類增加時,現(xiàn)有接口方法能夠滿足繼承類中的大多數(shù)方法,沒必要重新給新類設(shè)計一組方法,也節(jié)省了代碼,提高了開發(fā)效率.
舉個代碼示例:
//公共接口: "動物"
public Interface IAnimal
{
int EyeNumber;
private void Behavior(); //行為方法,描述各種動物的特性
}
//類: 狗
public Dog : IAnimal
{
string ActiveTime = "白天";
private void Behavior()
{
Console.Write("我晚上睡覺,白天活動");
}
}
//類: 貓
public Cat: IAnimal
{
string ActiveTime = "夜晚";
private void Behavior()
{
Console.Write("我白天睡覺,晚上活動");
}
}
//簡單的應(yīng)用:
public static Main()
{
Dog myDog = new Dog();
myDog.Behavior(); //輸出: "我晚上睡覺,白天活動"
Cat myCat = new Cat();
myCat.Behavior(); //輸出: "我白天睡覺,晚上活動"
}
以上調(diào)用不同的類的相同名方法,會輸出不同的東東,也就是說每個類里面的同名方法完成的功能可以是完全不同的.
更進(jìn)一步,不是用上面Main方法這樣一個一個調(diào)用類的方法,用多態(tài)性實現(xiàn)其調(diào)用.
看一下下面這個方法:
public Behavior(IAnimal myIanimal)
{
myIanimal.Behavior();
}
其參數(shù)是<<接口類型>>,任何繼承它的類都可以調(diào)用此方法,此方法能根據(jù)類的不同調(diào)用不同的類中的方法. 也即能夠自己根據(jù)不同的類,完成不同的類的功能.
多態(tài)性代碼示例:
Dog myDog = new Dog();
Cat myCat = new Cat();
Behavior(myDog); //Behavior接受“狗”類實例
Behavior(myCat); //Behavior接受“狗”類實例
這樣Behavior方法寫一次就能完成所有繼承它的類中的相同名方法的不同功能. 非常方便,
同樣,由于“動物軟件”功能需求,需要再增加一個"龜"類:
//類: 龜
public Tortoise: IAnimal
{
string ActiveTime = "很難說";
private void Behavior()
{
Console.Write("我可以不活動,一睡就睡五千年!");
}
}
那么也可以調(diào)用上面多態(tài)方法,所以說接口使方法具有較好擴展性.如果繼承它的類很多的話,有多少好處是可想而知的!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#原生圖像處理實戰(zhàn)之濾波、銳化與邊緣檢測操作詳解
在 C# 開發(fā)中,許多開發(fā)者習(xí)慣借助 OpenCV進(jìn)行圖像處理,本文將帶你從零開始,僅使用 System.Drawing實現(xiàn)三種經(jīng)典圖像處理算法,感興趣的小伙伴可以了解下2026-02-02
unity android設(shè)備上查看log輸出方式
這篇文章主要介紹了unity android設(shè)備上查看log輸出方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
使用C#實現(xiàn)Excel與DataTable互轉(zhuǎn)的方案
在企業(yè)級開發(fā)中,Excel文件與DataTable(數(shù)據(jù)表)的互轉(zhuǎn)是報表生成、數(shù)據(jù)遷移等場景的核心需求,傳統(tǒng)方案如OleDb或Office Interop存在內(nèi)存泄漏、性能低下等問題,且依賴本地Office組件,所以本文給大家介紹了使用C#實現(xiàn)Excel與DataTable互轉(zhuǎn)的方案,需要的朋友可以參考下2025-08-08
C#中DataTable的創(chuàng)建與遍歷實現(xiàn)
這篇文章主要介紹了C#中DataTable的創(chuàng)建與遍歷實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
C#中使用快速排序按文件創(chuàng)建時間將文件排序的源碼
C#中使用快速排序按文件創(chuàng)建時間將文件排序的源碼...2007-03-03

