通过基类的引用调用在派生类中实现的方法时,不同的派生类将产生不同的调用结果,这就是多态,而C#中的多态分为运行时多态和编译时多态。编译时多态利用函数重载实现,运行时多态通过覆写虚方法实现。


    定义虚方法需要使用virtual关键字,如下所示:

    class Car

    {

         public virtual void Drive()

         {

             Console.WriteLine("drive..");

         }

    }


    之所以将Drive设置为虚方法,就是为了让派生的子类去重写,这样所有Car的派生类都可以实现新的Drive方法。以下代码就是重写的实例,通过override关键字来重写方法。


    class Track : Car //继承car类

    {

          public override void Drive() //重写方法

          {

               Console.WriteLine("dirve track!");

          }

    }

    class Jeep : Car

    {

          public override void Drive()  //重写方法

          {

               Console.WriteLine("dirve jeep!");

          }

    }