c#中的多态

概念

多态是面向对象三大特性(封装、继承、多态)之一。是接口的不同实现方式,在uml中老师这样解释到:“通过继承


实现不同对象调用不同方法来实现不同的行为”。


例子

public class Animal
    {
        public virtual void Eat()
        {
            Console.WriteLine("Animal eat");
        }
    }

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

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

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

            animals[0] = new Animal();
            animals[1] = new Cat();
            animals[2] = new Dog();

            for (int i = 0; i < 3; i++)
            {
                animals[i].Eat();
            }
        }
    }

结果


例子中,通过继承,使得Animal对象数组中的不同的对象,在调用Eat()方法时,表现出了不同的行为。


posted @ 2013-02-14 16:38  陈方林  阅读(137)  评论(0编辑  收藏  举报