Java 多态
1. 多态
方法或对象具有多种形态。是面向对象的三大特征之一,多态是建立在封装、继承基础之上的
2. 多态的实现:
方法的重载中,使用不同的形参调用方法体现出了多态
方法的重写中,使用父类或子类的对象调用方法体现出了多态
对象的多态:
对象的编译类型与运行类型可以不一样
编译类型与运行类型:编译类型可以看定义时 = 号左边的类型,运行类型则是= 号右边的类型。
编译类型在定义的时候就确认了不能改变,而运行类型的改变体现出了对象的多态
3. 向上转型、向下转型
向上转型: 父类的引用指向子类,此时编译类型是父类,运行类型是子类,在编译阶段只能调用编译类型的成员,如果使用了子类的成员会提示语法错误。最终运行时,先从运行类型开始找,依次向上寻找。
向下转型:
语法:子类类型 引用名 = (子类类型) 父类引用。
把编译类型的引用强制往下转型,在转型的时候需要特别注意编译类型要与原来的运行类型相一致。向下转型并不是改变了这个对象,而是更改了他的引用。
4. instanceof 运算符
语法:对象名 instanceof 对象类型 真返回 true ,假返回 false
判断其运行类型是否是此类型或者是其类型的子类
5. 动态绑定机制
调用对象的方法时候,该方法会和对象的运行类型绑定。
调用属性的时候,则没有绑定,即哪里声明哪里使用。
posted @
2023-07-29 20:11
Sean-y
阅读(
77)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探