首页 > Windows开发 > 详细

【C#】多态

时间:2018-11-17 15:31:45      阅读:211      评论:0      收藏:0      [点我收藏+]
  public class Animal
        {
            public virtual void Eat()
            {
                Console.WriteLine("Animal eat");
                Console.ReadKey();
            }
        }

        public class Cat : Animal
        {
            public override void Eat()
            {
                Console.WriteLine("Cat eat");
                Console.ReadKey();
            }
        }

        public class Dog : Animal
        {
            public override void Eat()
            {
                Console.WriteLine("Dog eat");
                Console.ReadKey();
            }
        }
        public class Snake : Animal
        {
            public new void Eat()
            {
                Console.WriteLine("Snake eat");
                Console.ReadKey();
            }
        }

        class Tester
        {
            static void Main(string[] args)
            {
                Animal[] animals = new Animal[5];

                animals[0] = new Animal();
                animals[1] = new Cat();
                animals[2] = new Dog();
                animals[3] = new Snake();
                for (int i = 0; i < 4; i++)
                {
                    animals[i].Eat();
                }
                Snake snake = new Snake();
                snake.Eat();
            }
        }

直接上代码比较容易记

运行结果。子类重写父类,实例化父类,执行子类方法,若要执行子类new出的方法,则要实例化子类。

Animal eat
Cat eat
Dog eat
Animal eat
Snake eat

 

【C#】多态

原文:https://www.cnblogs.com/xuxml/p/9973862.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!