方法的重写
方法重写是实现多态机制的一种方式。
方法重写:例如,如果我们针对汽车、飞机、轮船等交通工具编程时,其有共同的地方,如都可以启动,我们就可以将这些共同的东西封装在一个基类中,然后在派生类中针对具体的情况重写各自的启动方法。
1 要使基类方法可以被派生类重写,需要在方法的声明中加上关键字 virtual.这种方法称为虚拟方法。同进,在派生类中,重写的方法声明中加上关键字override.
2对于需要在派生类中重写的方法,还可以用关键字abstract将其声明 为抽象方法,其在逻辑上类似地虚拟方法。在这里注意的是抽象类的派生类必须重写基类中的抽象方法,否则编译时会出错。
例子:
using System;
namespace ffchongxie
{
class Class1
{
[STAThread]
static void
{
Vehicle v = new Vehicle();
Vehicle c = new Car();
Vehicle p = new Plane();
Console.WriteLine(v.Start());
Console.WriteLine(c.Start());
Console.WriteLine(p.Start());
}
}
class Vehicle
{
public virtual string Start() // 在这个基类的方法上加上关键字virtual 就是表示这个方法可以被其子类重写
{
return "交通工具启动!";
}
}
class Car :Vehicle
{
public override string Start()//要重写基类的方法,要在方法前加上 override关键字
{
return "汽车起步!";
}
}
class Plane : Vehicle
{
public override string Start()
{
return "飞机起飞!";
}
}
}