上一讲我们学完了继承,`extends` 让子类拿到了父类的字段和方法,`super` 让子类能调用父类的版本,`@Override` 让子类可以重写父类的方法。但继承只解决了"代码怎么复用"的问题,还没回答一个更关键的问题:当一群不同的子类对象混在一起的时候,调用同一个方法名,到底该执行谁的代码?这正是今天要讲的**多态(Polymorphism)**,它来自希腊语"poly"(多)+ "morph"(形态),字面意思就是"多种形态"。 ## 先看一个没有多态会很痛苦的场景 假设你要写一个动物园管理系统,里面有狗和猫。如果不用多态,你可能会这样写: ```java void makeN…