首页 > 代码库 > C#语言基础知识(2):C#中多态

C#语言基础知识(2):C#中多态

我的理解是:通过继承实现的不同对象调用相同的方法,表现出不同的行为,称之为多态.
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...