11、自行车类继承结构的优化与实现

自行车类继承结构的优化与实现

1. 问题引入

在编程实践中,我们常常会遇到一些类结构设计不合理的情况。以自行车类为例,最初设计了一个 Bicycle 类,但随着需求的变化,出现了 MountainBike 类,此时问题就逐渐显现出来。

MountainBike 实例包含了公路自行车和山地自行车行为的混乱混合。这是因为 Bicycle 类是一个具体类,它将所有自行车通用的行为与公路自行车特有的行为结合在一起。当把 MountainBike 作为 Bicycle 的子类时,它会继承所有这些行为,无论这些行为是否适用。

1.1 类命名带来的问题

最初,设计一个通用的 Bicycle 类是合理的,因为当时可能只有公路自行车这一种类型。但当 MountainBike 出现后, Bicycle 这个名字就产生了误导。这两个类名暗示了继承关系,我们自然会将 MountainBike 作为 Bicycle 的子类来编写代码,但 Bicycle 类中的代码现在已经不适用了。

继承需要满足两个条件:
- 所建模的对象必须真正具有泛化 - 特化关系。
- 必须使用正确的编码技术。

目前 Bicycle 类将通用自行车代码与特定公路自行车

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值