Java67网站关于多态的讲解是否有误?该示例是否属方法重写?
Java67多态示例与方法重写的关系解答
这个示例同时是方法重写的典型案例,也是运行时多态的实现场景,两者并不冲突,具体解释如下:
属于方法重写的依据:
抽象父类Pet定义了抽象方法makeSound(),子类Cat和Dog都通过@Override注解对该方法进行了重新实现,完全符合Java方法重写的核心规则:子类对父类的非私有方法进行自定义实现,且方法签名(方法名、参数列表)与父类保持一致。与多态的关联:
示例中通过父类类型Pet的变量指向不同子类对象(new Cat()、new Dog()),在运行时JVM根据实际对象的类型调用对应的makeSound()方法,这正是通过方法重写实现运行时多态的典型表现。原文总结的“多态是变量根据指向对象类型表现不同行为的能力,方法重写是实现多态的方式”是准确的,两者是实现手段与核心概念的关系,而非并列关系。
内容的提问来源于stack exchange,提问作者DCR
相关产品推荐
相关产品推荐

