1. 程式人生 > >c# 第37節 接口的實現與繼承

c# 第37節 接口的實現與繼承

div RR code inter cli line err 應該 實現

本節內容:

1:接口繼承註意

2:開發封閉原則:

3:實例解釋接口的作用

1:接口繼承註意

接口的繼承:
1:類繼承具有單根性,接口可多重繼承; 
2:接口繼承多個接口的時候,派生接口名與父接口用冒號隔開,多個父接口之間用逗號隔開。
3:派生接口想要重寫繼承接口的方法或者屬性行,要用關鍵字new ; 

2:開發封閉原則:

開發封閉原則:
定義:軟件實體應該可以進行擴展,但是不可以修改

特性:
1:對擴展是開放的
2:對修改是封閉的,開放即可以操作,關閉即不可以操作 

3:實例接口繼承

技術分享圖片

類的實現

技術分享圖片
###########老鷹類################
class Eagle : Bird, IFlyable { public void fly() { Console.WriteLine("我是老鷹我可以飛"); } public override void eat() { Console.WriteLine("我是老鷹我吃小雞"); } } ############鴕鳥類############### class Ostrich:Bird { public override void eat() { Console.WriteLine(
"我是鴕鳥我吃青草"); } } #############麻雀類############### class Sparrow : Bird, IFlyable { public void fly() { Console.WriteLine("我是麻雀我可以飛"); } public override void eat() { Console.WriteLine("我是麻雀我吃糧食"); } } ############鳥類##################
abstract class Bird { public abstract void eat(); } ##########主類##################### class Program { static void Main(string[] args) { Bird[] obj = {new Eagle(),new Sparrow(),new Ostrich()}; foreach (Bird item in obj){item.eat();} IFlyable[] obj2 = {new Eagle(),new Sparrow()}; foreach (IFlyable item in obj2) { item.fly(); } Console.ReadKey(); } }
View Code

接口IFlyable:

 interface IFlyable
    {   //定義接口函數 //註意函數不能有結構體;不能有修飾符
        void fly();
    }

輸出:

技術分享圖片

c# 第37節 接口的實現與繼承