【JAVA 学习】 多态的向上转型与向下转型
多态的前提:两个对象(类)存在继承关系
向上转型:
本质:父类的引用指向子类的对象
语法:父类类型 引用名 = new 子类类型();
特点:编译类型看左边,运行类型看右边;
规则:(1)、可以调用父类中的所有成员(需遵守访问权限)
(2)、但是不能调用子类的特有的成员
(3)、因为在编译阶段,能调用哪些成员,是由编译类型来决定的
(4)、最终运行效果看子类(即运行类型)的具体实现,调用方法时,按照从子类(运行类型)开始查找,然后调用
***属性没有重写之说,属性的值看编译类型***
向下转型:
语法:子类类型 引用名 = (子类类型)父类引用;
只能强转父类的引用,不能强转父类的对象;
要求父类引用必须指向的是当前目标类型的对象
当向下转型后,可以调用子类类型中所有成员
***instanceOf 比较操作符,用于判断对象的运行类型是否为XX类型,或XX类型的子类型***
java的动态绑定机制
1、当调用对象方法时,该方法会和该对象的内存地址(运行类型)绑定
2、当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)