开始使用免费开始使用

正方形与长方形

违反里氏替换原则(Liskov Substitution Principle, LSP)的经典案例是圆-椭圆问题,有时也称为正方形-长方形问题。

乍一看,您似乎可以先定义一个 Rectangle 类,包含属性 hw(高和宽),再定义一个继承自 RectangleSquare 类。毕竟,正方形"是"长方形的一种!

但可惜,这种直觉并不能直接应用到面向对象设计上。

本练习是课程的一部分

Python 面向对象编程

查看课程

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Define a Rectangle class
____

# Define a Square class
____
编辑并运行代码