社区
Java SE
帖子详情
求解答,
Barboosa
2018-02-28 11:41:05
向下转型的时候父类对象为什么需要子类来开辟内存?
A a= new B;
为什么是B
...全文
1083
10
打赏
收藏
求解答,
向下转型的时候父类对象为什么需要子类来开辟内存? A a= new B; 为什么是B
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
写代码的陈皮
2018-07-28
打赏
举报
回复
利用Java中的多态了。
父类的引用可以指向子类的对象
多态(Polymorphism)
同一个行为具有多个不同表现形式或形态的能力,就是同一个接口,使用不同实例而执行不同操作。
具体可以看https://blog.csdn.net/weixin_38500325/article/details/81149704
https://blog.csdn.net/weixin_38500325/article/details/81149704
hf2541
2018-07-27
打赏
举报
回复
先向上转,才能向下转
small_clear
2018-07-27
打赏
举报
回复
基本的多态
A是B的父类对吧
如果把A当做是动物,那么B就是猫,或者是狗或者其他只要是动物(先理解这句话)
动物不是猫,不是狗,但是猫和狗都是动物
在向下转型之前首先需要它本身是一个向上转型的对象
打个比方:向上转型就是A(动物) a(动物对象)=new B(猫)
因为,你使用动物对象a的时候,它可以是猫
如果你又用这个动物作为对象new了一个狗
那么,这个a对象也可以是狗
只有向上转型的对象才会用到向下转型
本来是猫 向上转型为动物
然后它才能向下转型重新成为猫
至于你说的为什么是B
再打个比方 你将这个猫向上转型成为动物 你总不能把它向下转型变成狗吧
这是不可能的事 , 本来是猫,才能向下转型成为猫
同理
你new的时候new的是B 你总不能给他向下转型成为一个C吧
除非你之前用A做引用new了一个C 他才能向下转型成为C
Weyland7
2018-07-27
打赏
举报
回复
在你调用下面三个方法的时候,如果你的B类里面重写了那三个方法,下面那行B b = (B)a完全是多余的,你写不写结果都一样,基本的多态吧
verejava
2018-07-25
打赏
举报
回复
子类继承了 父类的东西。 子类实例化,父类也得实例化。
stacksoverflow
2018-07-25
打赏
举报
回复
忽略等号左边的类型
屌丝Java
2018-03-09
打赏
举报
回复
在继承方面,a是A类型的对象变量,A类的对象a参考的是B类的对象实体。
Rolf已存在
2018-03-02
打赏
举报
回复
比着视频还是书上敲的?你这样问说明你没看明白
qq_37966597
2018-03-01
打赏
举报
回复
这差不多是多态那边的 直接B b = new B() 也是一样的
oO临时工Oo
2018-02-28
打赏
举报
回复
A a = new B(); B b = (B)a; 两行合成一行,更合理。 B b = new B()
200个经典C程序【源码】
第六部分 常见试题解
答
篇 170 水果拼盘 171 小孩吃梨 172 删除字符串中的特定字符 173
求解
符号方程 174 计算标准差 175 求取符合特定要求的素数 176 统计符合特定条件的数 177 字符串倒置 178 部分排序 ...
oracle安装后驱动找不到,Debezium集成Oracle踩坑(在线
求解
答
)显示找不到oracle驱动...
Debezium集成Oracle踩坑(在线
求解
答
)显示找不到oracle驱动Debezium集成Oracle踩坑(在线
求解
答
)显示找不到oracle驱动本人最近在做debezium集成Oracle的项目,主要流程就是监控Oracle数据库,然后将变化通过kafka ...
华为 AR路由器点到多点ipsec 打通 后某分点不能访问主网段的服务器 ,
求解
答
!!!
华为 AR路由器点到多点ipsec 打通 后某分点不能访问主网段...
求解
答
!!!
求解
答
!!!
求解
答
!!! 是不是服务器的问题, 但如果是的话 ,那1.0网段的应该也不能访问服务器0.150才对啊 网络拓扑图如下: 具体描述 2
【
求解
答
】pyqt5 主界面和控制算法运行的多进程
【
求解
答
】pyqt5 主界面和控制算法运行的多进程 有个特别头大的问题,希望在CSDN里面能得到相关大佬的解
答
!!! 呜呜呜,无助… 情况说明: 我使用了pyqt5开发深度学习算法的应用程序,主进程是控制界面运行的,也就是...
关于vivado与matlab联合使用当中遇到的问题
求解
答
关于vivado与matlab联合使用当中遇到的问题
求解
答
首先是system generator的使用 题主安装的是2017版本的vivado和2019版本的matlab,如何能让sysgen找到2019版本的matlab是我第一个问题 解决方案在其他
答
主那里得到...
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章