c# – 为何以及何时使用多态?
发布时间:2020-12-15 18:23:00 所属栏目:百科 来源:网络整理
导读:我是OOP的新手,多态性让我很难过: class Animal{ public virtual void eat() { Console.Write("Animal eating"); }}class Dog : Animal{ public override void eat() { Console.Write("Dog eating"); }}class Program{ public void Main() { Animal dog = n
我是OOP的新手,多态性让我很难过:
class Animal { public virtual void eat() { Console.Write("Animal eating"); } } class Dog : Animal { public override void eat() { Console.Write("Dog eating"); } } class Program { public void Main() { Animal dog = new Dog(); Animal generic = new Animal(); dog.eat(); generic.eat(); } } 这样打印 Dog eating Animal eating 但是为什么不使用Dog类型代替动物,比如Dog dog = new Dog()?当你知道这个物体是一种动物,但我不知道它是什么样的动物时,我认为这很方便.请向我解释一下. 谢谢 解决方法
您可以通过其超类引用子类.
Animal dog = new Dog(); Animal cat = new Cat(); Animal frog = new Frog(); List<Animal> animals = new List<Animal>(); animals.add(dog); animals.add(cat); animals.add(frog); foreach(Animal animal in animals) { Console.WriteLine(animal.eat()); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |