子类如何使用父类的虚方法
时间: 2024-05-11 16:14:33 浏览: 7
子类可以重写父类的虚方法,并且可以通过调用父类的同名方法来使用父类的虚方法。例如:
```csharp
class Animal
{
public virtual void MakeSound()
{
Console.WriteLine("Animal makes a sound");
}
}
class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("Dog barks");
base.MakeSound(); // 调用父类的虚方法
}
}
class Program
{
static void Main(string[] args)
{
Animal animal = new Animal();
animal.MakeSound(); // Animal makes a sound
Dog dog = new Dog();
dog.MakeSound(); // Dog barks
// Animal makes a sound
}
}
```
在上面的例子中,`Animal`类有一个虚方法`MakeSound`,而`Dog`类重写了该方法,并在方法中调用了父类的同名方法。在`Main`方法中,我们创建了一个`Animal`对象和一个`Dog`对象,并分别调用它们的`MakeSound`方法。可以看到,`Animal`对象调用的是父类的虚方法,而`Dog`对象调用的是子类的重写方法,并且还调用了父类的虚方法。