c# 第37節 接口的實現與繼承
阿新 • • 發佈:2018-03-29
div RR code inter cli line err 應該 實現
本節內容:
1:接口繼承註意
2:開發封閉原則:
3:實例解釋接口的作用
1:接口繼承註意
接口的繼承: 1:類繼承具有單根性,接口可多重繼承; 2:接口繼承多個接口的時候,派生接口名與父接口用冒號隔開,多個父接口之間用逗號隔開。 3:派生接口想要重寫繼承接口的方法或者屬性行,要用關鍵字new ;
2:開發封閉原則:
開發封閉原則: 定義:軟件實體應該可以進行擴展,但是不可以修改 特性: 1:對擴展是開放的 2:對修改是封閉的,開放即可以操作,關閉即不可以操作
3:實例接口繼承
類的實現
###########老鷹類################View Codeclass 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(); } }
接口IFlyable:
interface IFlyable { //定義接口函數 //註意函數不能有結構體;不能有修飾符 void fly(); }
輸出:
c# 第37節 接口的實現與繼承