程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#接口(Interface)用法剖析

C#接口(Interface)用法剖析

編輯:C#入門知識

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#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved