我們都知道,喜鵲(Magpie)、老鷹(Eagle)、企鵝(Penguin)都是屬於鳥類,我們可以根據這三者的共有特性提取出鳥類(Bird)做為父類,喜鵲喜歡吃蟲子,老鷹喜歡吃肉,企鵝喜歡吃魚。
建立基類Bird如下,添加一個虛方法Eat():
/// <summary> /// 鳥類:父類 /// </summary> public class Bird { /// <summary> /// 吃:虛方法 /// </summary> public virtual void Eat() { Console.WriteLine("我是一隻小小鳥,我喜歡吃蟲子~"); } }
建立子類Magpie如下,繼承父類Bird,重寫父類Bird中的虛方法Eat():
/// <summary> /// 喜鵲:子類 /// </summary> public class Magpie:Bird { /// <summary> /// 重寫父類中Eat方法 /// </summary> public override void Eat() { Console.WriteLine("我是一隻喜鵲,我喜歡吃蟲子~"); } }
建一個子類Eagle如下,繼承父類Bird,重寫父類Bird中的虛方法Eat():
/// <summary> /// 企鵝:子類 /// </summary> public class Penguin:Bird { /// <summary> /// 重寫父類中Eat方法 /// </summary> public override void Eat() { Console.WriteLine("我是一隻小企鵝,我喜歡吃魚~"); } }
到此,一個基類,三個子類已經建立完畢,接下來我們在主函數中來看下多態是怎樣體現的。
static void Main(string[] args) { //建立一個Bird基類數組,添加基類Bird對象,Magpie對象,Eagle對象,Penguin對象 Bird[] birds = { new Bird(), new Magpie(), new Eagle(), new Penguin() }; //遍曆一下birds數組 foreach (Bird bird in birds) { bird.Eat(); } Console.ReadKey(); }