多态
通过基类的引用调用在派生类中实现的方法时,不同的派生类将产生不同的调用结果,这就是多态,而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!");
}
}