C#的多态理解

来源:互联网 发布:hadoop mr算法 编辑:程序博客网 时间:2024/06/08 09:44
 我的理解:被转换为基类的不同子类对象在执行同一方法(virtrul转override)时可产生不同的执行结果,此即多态性.

class Program

    {

        static void Main(string[] args)

        {

            animal[] p = new animal[4] ;

            p[0]=new dog();

            p[1]=new cat();

            p[2] = new duck();

            p[3] = new chook();

           

            for (int i=0;i<4;i++)

            {

                p[i].show();

            }

        }

    }

    class animal

    {

        public virtual  void show()

        {

            Console.WriteLine("animal");

        }

    }

  

    class cat : animal

    {

        public override void show()

        {

            Console.WriteLine("I am a cat,Mi O ...");

        }

 

    }

    class chook : animal

    {

        public override void show()

        {

            Console.WriteLine("I am a chook,O...");

        }

      

    }

    class dog : animal

    {

        public override void show()

        {

            Console.WriteLine("I am a dog ,Wang Wang Wang ...");

        }

 

    }

    class duck : animal

    {

        public override void show()

        {

            Console.WriteLine("I am a duck ,Ya Ya Ya...");

        }

 

    }

 

原创粉丝点击