Java多态
什么是多态
相同的类型,相同的方法调用,因为具体的实例不同,得到不同的业务对象
【OOP的基础原理关系:封装>>>继承>>>多态】
多态在开发过程中的优点:
- 多样性:同一个对象在使用中可以表现出不同的业务特性
- 便于进行业务逻辑的更新(无需便宜的快速替换)
如何实现多态:
语法要求:
- 一定是多个类才能实现多态特性(一个类不行)
- 多个类之间具有继承关系
- 子类一定要重写父类方法
- 业务实现,一定是子类替代父类(父类变量,子类实例)
【替代的三种形态】- 父类>>>子类
- 抽象类>>>子类
- 接口>>>子类
多态的典型应用场景:
- 父类型,作为方法的参数——作为使用者,我们使用的产品具有多样性(多态)
- 父类型,作为方法的返回——作为生产者,我们产生的结果具有多样性(多态)
【总结】
使用多态,从代码的角度,就是使用者自己不要创建具体对象实例(自己创建对象实例一旦对象实例发生变化,代码也要发生变化)
多态应用中补充问题:
- 为了实现多态性,彼此使用时,都是以“父类型”的身份出现。所以,虽然都是“子类型”实例来具体完成业务,但从外部只能看到父类的资源列表
- 虽然,都是子类实例完成具体业务!但使用者无法使用其"自有的新方法,新资源"
【处理方法】- 父类即便没有实现,也可以将“想要实现的功能”以抽象的方法公开,便于后代的扩展
- 识别身份,转换类型后,使用新资源
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本