学完封装之后,你已经能把一个类的字段藏起来,只通过 getter/setter 开口子对外暴露。但很快会遇到这样的场景:写完 `Dog` 类之后,又要写一个 `Cat` 类,发现两者都有 `name`、`age`,都有 `eat()` 方法,代码几乎是复制粘贴。这一讲要解决的就是这个重复问题——**继承(Inheritance)**。 ## 为什么需要继承 假设要给一个动物园系统建模,动物有很多种:狗、猫、鸟。它们都有名字、年龄,都会吃东西,但叫声不一样。如果每个类都从零写一遍 `name`、`age`、`eat()`,不仅代码重复,以后改一个公共逻辑(比如给 `eat()` 加一行日志)…