標籤:style blog color for line div
我的理解是:通過繼承實現的不同對象調用相同的方法,表現出不同的行為,稱之為多態.
1: OverRide 實現多態
1 public class Animal 2 { 3 public virtual void Eat() 4 { 5 Console.WriteLine("Animal eat"); 6 } 7 } 8 public class Dog : Animal 9 {10 public override void Eat()11 {12 Console.WriteLine("Dog eat");13 }14 }15 public class WolfDog : Dog16 {17 public override void Eat()18 {19 Console.WriteLine("WolfDog eat");20 }21 }22 class Tester23 {24 static void Main(string[] args)25 {26 Animal[] animals = new Animal[3];27 animals[0] = new Animal();28 animals[1] = new Dog();29 animals[2] = new WolfDog();30 for (int i = 0; i < 3; i++)31 {32 animals[i].Eat();33 }34 }35 }
運行結果為:
Animal eat...
Dog eat...
WolfDog eat...
2:New虛方法實現多態
1 public class Animal 2 { 3 public virtual void Eat() 4 { 5 Console.WriteLine("Animal eat"); 6 } 7 } 8 public class Cat : Animal 9 {10 public new void Eat()11 {12 Console.WriteLine("Cat eat");13 }14 }15 class Tester16 {17 static void Main(string[] args)18 19 {20 Animal a = new Animal();21 a.Eat();22 Animal ac = new Cat();23 ac.Eat();24 Cat c = new Cat();25 c.Eat();26 }27 }
輸出結果如下
Animal eat...
Animal eat...
Cat eat...