父类设置个虚函数子类实现#
时间: 2024-09-18 18:10:59 浏览: 37
深入探讨C++父类子类中虚函数的应用
5星 · 资源好评率100%
在面向对象编程中,父类设置虚函数(也称为虚拟函数或纯虚函数)是一种机制,使得子类可以根据需要覆盖父类中的特定功能。当你在父类中声明一个虚函数,并添加`virtual`关键字,子类可以在不改变函数名和参数列表的情况下提供自己的实现。这样做有以下几点好处:
1. **代码灵活性**:子类可以重写父类的行为,适应特定场景的需求,提高了代码的复用性和扩展性。
2. **动态绑定**:在运行时,实际上是子类的方法实例被执行,而不是父类的方法。这就是所谓的动态绑定或晚期绑定。
3. **接口实现**:如果父类只是作为一个接口存在,所有的成员函数都是虚函数,这有助于确保子类实现了接口的所有要求。
例如,在C#中,你可以这样操作:
```csharp
public abstract class Animal
{
public virtual void Speak()
{
Console.WriteLine("This is an animal speaking.");
}
}
public class Dog : Animal
{
public override void Speak()
{
Console.WriteLine("Woof!");
}
}
Animal myAnimal = new Dog(); // 创建Dog对象,但是引用的是Animal类型的变量
myAnimal.Speak(); // 输出 "Woof!",因为Speak方法在Dog类中被重写了
```
在这个例子中,`Animal`是父类,`Dog`是子类。`Speak`是一个虚函数,`Dog`子类提供了自己的实现。当你通过`Animal`类型的指针调用`Speak`,实际执行的是`Dog`版本的`Speak`。
阅读全文