面向对象编程的三大特性是继承,封装和多态。当我们从父类中继承了一种方法,但是我们事实上需要的是另外一种方法,这时候我们就可以通过重写方法,实现一个方法名对应多种方法。
举例来说,我们有一个类名叫Animal,其中有一个方法名为Move
class Animal
{
public virtual void Move()
{
Console.WriteLine("Move!");
}
}
有一个继承于该类的子类Bird,其也有一个Move方法,而Bird里面的Move方法和父类中的不一致,我们需要重写。重写方法需要使用关键词override
class bird : Animal
{
public override void Move()
{
Console.WriteLine("Fly!");
}
}
我们在主函数中分别调用这两个方法
static void Main(string[] args)
{
Animal myAnimal = new Animal();
myAnimal.Move();
bird myBird = new bird();
myBird.Move();
Console.ReadKey();
}
效果