Skip to content
败犬日报 2026-02-17

败犬日报 2026-02-17

1. “正方形继承长方形”悖论

周刊群偷点话题。

长方形-正方形是违反里氏替换的典型例子。如果正方形继承了长方形,setW、setH 也会继承过来,显然语义不对。

数学上的正方形是长方形,is-a 关系成立,但不代表对象语义的 is-a 成立。里氏替换要求子类必须满足父类的行为契约,这里就违反了。

正确做法是 Square 和 Rectangle 都继承 Shape。