C#接口(Interface)用法剖析。本站提示廣大學習愛好者:(C#接口(Interface)用法剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是C#接口(Interface)用法剖析正文
本文實例剖析了C#接口(Interface)用法。分享給年夜家供年夜家參考。詳細剖析以下:
繼續"基類"跟繼續"接口"都能完成某些雷同的功效,但有些接口可以或許完成的功效是只用基類沒法完成的
1.接口用於描寫一組類的公共辦法/公共屬性. 它不完成任何的辦法或屬性,只是告知繼續它的類至多要完成哪些功效,繼續它的類可以增長本身的辦法.
2.應用接口可使繼續它的類: 定名同一/標准,易於保護.好比: 兩個類 "狗"和"貓",假如它們都繼續了接口"植物",個中植物外面有個辦法Behavior(),那末狗和貓必需得完成Behavior()辦法,
而且都定名為Behavior如許就不會湧現定名太混亂的景象.假如定名不是Behavior(),接口會束縛即不按接口束縛定名編譯不會經由過程.
3.供給永久的接口。 當類增長時,現有接口辦法可以或許知足繼續類中的年夜多半辦法,沒需要從新給新類設計一組辦法,也節儉了代碼,進步了開辟效力.
舉個代碼示例:
//公共接口: "植物" 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("我日間睡覺,早晨運動"); } } //簡略的運用: public static Main() { Dog myDog = new Dog(); myDog.Behavior(); //輸入: "我早晨睡覺,日間運動" Cat myCat = new Cat(); myCat.Behavior(); //輸入: "我日間睡覺,早晨運動" }
以上挪用分歧的類的雷同名辦法,會輸入分歧的東東,也就是說每一個類外面的同名辦法完成的功效可所以完整分歧的.
更進一步,不是用下面Main辦法如許一個一個挪用類的辦法,用多態性完成其挪用.
看一下上面這個辦法:
public Behavior(IAnimal myIanimal) { myIanimal.Behavior(); }
其參數是<<接口類型>>,任何繼續它的類都可以挪用此辦法,此辦法能依據類的分歧挪用分歧的類中的辦法. 也即可以或許本身依據分歧的類,完成分歧的類的功效.
多態性代碼示例:
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("我可以不運動,一睡就睡五千年!"); } }
那末也能夠挪用下面多態辦法,所以說接口使辦法具有較好擴大性.
假如繼續它的類許多的話,有若干利益是可想而知的!
別的, 也有籠統類可以或許完成但接口不克不及完成的情形:
1. 在籠統類中可以加代碼邏輯,但接口不克不及.
2. 假如要在接口中增長一個辦法, 一切完成它的類都強迫重載一遍此辦法, 假如重載類許多時, 會增年夜任務量.
總之, 普通在僅完成單繼續用處時, 盡可能用籠統類, 功效也更強些!
願望本文所述對年夜家的C#法式設計有所贊助。