当前位置: 首页 > news >正文

多态 向上转型

Collection<String> list = new ArrayList<>();

(1) 编译时类型 vs 运行时类型
  • 编译时类型(引用类型):Collection<String>
    • Java 编译器 只允许你调用 Collection 接口中定义的方法
    • 如果尝试调用 ArrayList 特有的方法(如 getFirst()removeFirst()),编译器会报错。
  • 运行时类型(实际对象):ArrayList<String>
    • 虽然底层实际是 ArrayList,但 编译器不允许你直接访问其特有方法,因为引用类型是 Collection
(2) 多态的核心规则
  • Java 的多态机制遵循 “编译看左边,运行看右边” 的原则:
    • 编译时:检查引用类型(左边),决定可用方法。
    • 运行时:调用实际对象(右边)的方法实现。

运行时:调用实际对象(右边)的方法实现。的含义

虽然变量 list 的引用类型是 Collection,但它的实际对象是 ArrayList。在 运行时,所有通过 list 调用的方法都会按照 ArrayList 的具体实现来执行,这就是 多态(Polymorphism) 的核心机制。

 运行时(Run Time)
  • 实际对象决定方法的具体实现
    尽管引用类型是 Collection,但底层实际对象是 ArrayList,所以 add() 方法的实现是 ArrayList 的版本
  • 示例
    Collection<String> list = new ArrayList<>();
    list.add("A"); // 实际调用的是 ArrayList 的 add() 方法

相关文章:

  • 红棉花板材亮相德国科隆展 东方智造赋能全球家居未来
  • 如何使用 Python 的胶水语言特性
  • 涨薪技术|0到1学会性能测试第88课-Web_service_call函数
  • 国产SOC有哪些?
  • 尚硅谷redis7 58-62 主从复制之一主二仆
  • mysql 迁移金仓,sys_use表查询报错,指定search_path后任然报错的问题
  • Linux系统中使用find命令自动清理过期备份文件的完整指南
  • 跑步机的控制面板英文的意思
  • 51c~CUDA~合集1
  • STP协议:如何消除网络环路风暴
  • cuda编程笔记(2)--传递参数、设备属性
  • 让爱延续,共筑养老服务产业的美好未来
  • 企业级AI开启落地战,得场景者得天下
  • 快速入门Java+Spring Ai+deepseek 开发
  • 快速入门基于stm32 CubeMX生成的freeRTOS操作系统开发
  • 七:操作系统文件系统之空闲空间管理
  • Guava限频器RateLimiter的使用示例
  • Batch Normalization[[
  • 辛格迪客户案例 | 合规升级之路:辛格迪助力倍特药业迈向卓越
  • Selenium 测试框架 - JavaScript
  • 百度域名服务器/seo关键词如何设置
  • 十堰h5网站建设/网站的seo是什么意思
  • 网站平台设计费用/怎么买域名自己做网站
  • 凡科的网站怎么做百度推广/hao123网址大全浏览器设为主页
  • 企业网站备案资料填写单/怎么注册自己的网站域名
  • 网站上可以做直播吗/镇江网页设计