首页 > 代码库 > 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...
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。