介面(Interface)的作用,asp.net(C#)

來源:互聯網
上載者:User
繼承"基類"跟繼承"介面"都能實現某些相同的功能,但有些介面能夠完成的功能是只用基類無法實現的

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. 如果要在介面中增加一個方法, 所有實現它的類都強制重載一遍此方法, 如果重載類很多時, 會增大工作量.

總之, 一般在僅實現單繼承用途時, 盡量用抽象類別, 功能也更強些!

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.