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
相关推荐
夏幻灵3 小时前
JavaScript this 面试:五种绑定规则、优先级与常见面试陷阱程序猿编码4 小时前
榨干 RTX5090 算力!Qwen3 专用单卡推理引擎,手写C++/CUDA 算子实现 MTP 推测解码bkspiderx5 小时前
Qt 插件机制:动态扩展应用功能的核心框架代码什么用5 小时前
Spring基础使用程序员老陆5 小时前
深入理解 C++ thread_local:线程私有存储的正确打开方式沐晓时光5 小时前
C语言入门,深入理解指针(3)Su米苏6 小时前
Spring AI 中MCP 与普通 @Tool的区别码云数智-园园6 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析老板一杯拿铁6 小时前
Java 异常体系详解:从字节码原理到最佳实践蜗牛互联网6 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退