public class Test{
class Animal {
public void eat() {
System.out.println("动物吃饭");
}
}
class Cat extends Animal {
@Override
public void eat() {
System.out.println("猫吃鱼");
}
}
class Dog extends Animal {
@Override
public void eat() {
System.out.println("狗吃骨头");
}
}
public stastic void main(){
Animal n = new Dog();
n.eat(); //狗吃骨头
}
}
当通过Animal类型引用调用eat()时,会根据实际对象类型(Cat或Dog)执行对应方法。
Java多态的主要好处体现在以下方面:
解耦与扩展
多态通过父类引用指向子类对象,允许在不修改原有代码的情况下扩展功能。例如,当业务需求变更时(如原计划让学生执行工作,后改为让教师执行),只需修改对象创建逻辑,无需修改调用代码,实现解耦。 12
接口统一性
父类方法可通过多态接收不同子类对象,简化代码编写。例如ArrayList<Object>通过泛型设计,可接收任意类型对象,无需为每种类型单独设计方法。 13
灵活扩展性
多态允许通过继承或接口扩展新增功能,无需修改原有代码结构。例如新增体育生类继承学生类时,可重写学习方法为体能训练,实现行为扩展。 34
维护便利性
通过父类引用调用子类方法时,若子类行为变更(如修改方法实现),仅需更新子类代码,父类调用代码无需调整。
578

被折叠的 条评论
为什么被折叠?



