继承最重要的意义不是“少写几行重复代码”,而是表达一种可替换的 is-a 关系:任何需要基类对象的地方,都可以合理地使用派生类对象。
先问是否真的可替换
假设有基类:
class Shape {
public:
virtual double area() const = 0;
virtual ~Shape() = default;
};
2026/7/16大约 4 分钟
继承最重要的意义不是“少写几行重复代码”,而是表达一种可替换的 is-a 关系:任何需要基类对象的地方,都可以合理地使用派生类对象。
假设有基类:
class Shape {
public:
virtual double area() const = 0;
virtual ~Shape() = default;
};