C# 进阶 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

多态

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

  方法的重载我们在《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!");
   }
}