public class Polymorphism {
public static void main(String[] args) {
Animal a1 = new Dog();
Animal a2 = new Cat();
/*
多态的编译过程会先看左边的类型,导致子类的函数不能用。但是多态在运行的时候会看右边,自动匹配子类对象
a1.eat();
a1.bark();//运行时多态看左边,左边是Animal类型,没有bark方法,导致报错
a2.eat();
a2.meow();//运行时多态看左边,左边是Animal类型,没有meow方法,导致报错
*/
a1.eat();
((Dog)a1).bark();
a2.eat();
((Cat)a2).meow();
}
}
多态:编译时看左边,运行时看右边
亓才孓2026-01-07 13:24
相关推荐
日月云棠1 天前
各版本JDK对比:JDK 25 特性详解用户8307196840821 天前
Spring Boot 项目中日期处理的最佳实践JavaGuide1 天前
Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!IT探险家1 天前
Java 基本数据类型:8 种原始类型 + 数组 + 6 个新手必踩的坑花花无缺1 天前
搞懂new 关键字(构造函数)和 .builder() 模式(建造者模式)创建对象用户908324602731 天前
Spring Boot + MyBatis-Plus 多租户实战:从数据隔离到权限控制的完整方案桦说编程1 天前
实战分析 ConcurrentHashMap.computeIfAbsent 的锁冲突问题程序员清风2 天前
用了三年AI,我总结出高效使用AI的3个习惯!beata2 天前
Java基础-13: Java反射机制详解:原理、使用与实战示例用户0332126663672 天前
Java 使用 Spire.Presentation 在 PowerPoint 中添加或删除表格行与列