加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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());
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读