继承(Inheritance)
缩写:无
简述
子类型自动获得父类型结构与行为的机制,用于表达「是一种」并支持多态。实现继承复用代码但制造耦合;接口继承更偏契约。现代实践强调限制继承深度、优先组合。
使用场景
框架扩展、UI 组件层次、受控的类型族。
实践与应用
• 继承表达分类而非仅为复用
• 模板方法慎用钩子
• 文档化可覆写点
注意事项
• 脆弱基类问题
• 多重继承菱形(若语言允许)
• 违反里氏替换
对比与易混
| 继承 | 组合 | |
|---|---|---|
| 关系 | 是一种 | 有一个 |
| 耦合 | 易沿类型树变紧 | 通常更松、易替换部件 |
关联术语
• 组合:用「有一个」替代「是一种」的对照结构
• 多态:继承支撑的子类型多态
• 类:继承关系的载体
• 里氏替换:子类型可替换父类型的原则