news 2026/7/11 11:01:32

面向对象进阶 多态

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
面向对象进阶 多态

面向对象进阶:多态

一、多态的定义

同类型对象表现出的不同形态

二、核心表现形式

父类类型 对象名=new子类类型();// 例:Animal animal = new Cat();

三、多态的三大前提

  1. 存在继承或实现关系(类继承类、类实现接口)

  2. 父类引用指向子类对象(满足上述表现形式)

  3. 存在方法重写

    四、使用场景与优势

    典型场景

    当需要处理多个同父类的子类对象时(如StudentTeacherAdministrator均继承自Person),可简化方法定义:

    // 无需为每个子类定义单独方法voidregister(Personp){p.show();// 自动调用对应子类的重写方法}

    核心优势

  • 减少代码冗余,提高扩展性

  • 父类型参数可接收所有子类型对象

    五、多态中成员的调用规则

    1. 成员变量

  • 编译期:检查父类中是否存在该变量(编译看左边)

  • 运行期:使用父类中的变量值(运行看左边)

    2. 成员方法

  • 编译期:检查父类中是否存在该方法(编译看左边)

  • 运行期:执行子类中重写的方法(运行看右边)

    六、多态的弊端与解决方案

    弊端

    父类引用无法直接调用子类的特有方法和属性

    解决方案:强制类型转换(向下转型)

    // 格式:子类类型 新对象名 = (子类类型) 父类引用;Parentp=newChild();Childc=(Child)p;// 强制转换后可调用Child的特有方法

    七、类型判断工具:instanceof

    作用

    判断对象是否属于指定类型(包括继承关系)

    基础用法

    Aa=newB();// B是A的子类booleanisB=ainstanceofB;// truebooleanisA=ainstanceofA;// true

    JDK14+新特性(模式匹配)

    if(ainstanceofBb){// 若判断成立,自动完成类型转换,可直接使用b调用B的方法b.childMethod();}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 6:13:05

Kotaemon家庭健康管理:症状自查与建议

Kotaemon家庭健康管理:症状自查与建议 在日常生活中,很多人经历过这样的场景:深夜头痛难忍,第一反应不是立刻就医,而是打开手机搜索“反复头痛可能是什么病”。然而,网络上的信息鱼龙混杂——广告夹杂着科普…

作者头像 李华
网站建设 2026/7/10 21:09:39

39、进程同步、线程基础与杂项源码解析

进程同步、线程基础与杂项源码解析 进程同步程序 在之前的程序里,多线程间共享计数器很简单,只需将计数器存为全局变量。现在,我们要修改程序,实现不同进程间的同步。 为了让父进程和子进程共享计数器,我们把计数器存于共享内存中,该共享内存由 my-shm 函数分配,代…

作者头像 李华
网站建设 2026/7/11 11:00:49

Kotaemon企业Wiki对接方案:Confluence/语雀等

Kotaemon企业Wiki对接方案:Confluence/语雀等 在现代企业中,知识的沉淀往往集中在Confluence、语雀这类协作型文档平台。但一个令人尴尬的事实是:尽管这些系统里存着成千上万页的操作手册、制度规范和流程说明,员工真正想找点信息…

作者头像 李华
网站建设 2026/7/7 11:57:53

Wekan 看板系统严重漏洞解析:CVE-2025-65779 允许未授权排序

CVE-2025-65779: n/a 严重性: 类型: 漏洞 CVE-2025-65779 在 Wekan(开源看板系统)18.15 及之前版本中发现一个问题,该问题已在 18.16 版本中修复。未经身份验证的攻击者可以更新看板的 “sort” 值(Boards.…

作者头像 李华
网站建设 2026/7/11 13:39:24

Kotaemon能否替代传统搜索引擎?应用场景边界探讨

Kotaemon能否替代传统搜索引擎?应用场景边界探讨 在企业知识管理日益复杂的今天,一个现实问题反复浮现:员工每天花费数小时在内部文档、邮件和系统中“翻找”信息,而客户则因客服机器人只能回答模板化问题而频频投诉。这种低效并非…

作者头像 李华
网站建设 2026/7/9 19:38:48

开源重塑下一代:22岁印度AI青年的“可复制”成长启示

近日,一则来自LinkedIn的个人动态在全球科技圈引发广泛关注。发布者是来自印度22岁的AI研究者Adithya S Kolavi。在这条帖子中,他系统回顾了自己在过去一年内的学习、研究、开源与创业成果——这份几乎“履历级”的总结,很快获得了2000余个点…

作者头像 李华