虚函数在面向对象编程中的真实应用
1. 重写成员函数
在面向对象编程中,继承是构建复杂系统的重要工具。通过继承,子类可以从父类继承属性和方法,并且可以根据需要修改或扩展这些方法。这种机制不仅提高了代码的复用性,还增强了系统的灵活性。
当子类需要修改父类中的某个成员函数时,可以通过重写(overriding)来实现。重写指的是子类中定义了一个与父类中同名且参数相同的成员函数。重写后的成员函数会替代父类中的原始函数,在运行时根据对象的实际类型调用相应的函数。
class Student {
public:
double calcTuition() { return 0.0; }
};
class GraduateStudent : public Student {
public:
double calcTuition() { return 1.0; }
};
在上面的例子中, Student
类中的 calcTuition
函数被 GraduateStudent
类重写了。当我们创建 GraduateStudent
对象时,调用 calcTuition
函数会返回 1.0
而不是 0.0
。