在C++中,实现有效的继承和多态可以通过以下步骤实现:
class Shape {
public:
virtual void draw() {
// 空实现
}
};
class Circle : public Shape {
public:
void draw() override {
// 实现绘制圆形的方法
}
};
class Rectangle : public Shape {
public:
void draw() override {
// 实现绘制矩形的方法
}
};
使用虚函数和override关键字:定义基类中的虚函数,允许派生类覆盖(override)这些函数。
使用基类指针或引用调用派生类方法:通过基类指针或引用调用派生类的方法,实现多态。
int main() {
Shape* shape;
Circle circle;
Rectangle rectangle;
shape = &circle;
shape->draw(); // 调用Circle类的draw方法
shape = &rectangle;
shape->draw(); // 调用Rectangle类的draw方法
return 0;
}
通过以上步骤,可以在C++中实现有效的继承和多态。subclass重新定义基类中的虚函数,以实现不同的行为。可以通过基类指针或引用调用派生类的方法,实现多态的效果。