开发者社区 问答 正文

如何修正“正方形不是矩形”“鸵鸟不是鸟”的例子以符合LSP原则?

如何修正“正方形不是矩形”“鸵鸟不是鸟”的例子以符合LSP原则?

展开
收起
冲冲冲c 2024-08-26 16:12:32 52 分享 版权
1 条回答
写回答
取消 提交回答
  • 要修正“正方形不是矩形”的例子以符合LSP原则,需要重新设计Rectangle和Square类的接口。例如,可以去除reSize函数中基于宽高相等的假设,或者为Square类设计一个不同的接口,避免直接继承Rectangle的setWidth和setHeight方法,因为它们不适用于正方形。要修正“鸵鸟不是鸟”的例子以符合LSP原则,需要重新设计Bird类的接口。可以为Bird类添加一个是否可以飞行的接口(如bool canFly()),并根据是否能飞行来定义速度属性。这样,可以飞行的鸟类返回飞行速度,而鸵鸟等不能飞行的鸟类则返回行走速度或其他合适的值。

    2024-08-26 20:05:34
    赞同 7 展开评论
问答地址: