请教一个向下转换的问题

请教一个向下转换的问题

Animal two=new Cat();这里的two因为指向Cat类 所以可以被强转成Cat

想请问下 如果two没有指向Cat类的话 是不是就不能强转为Cat类了啊 比如Animal two=new Animal();

谢谢!

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

是的,如果本身没有指向该子类,是不能强转的,我之前也疑惑了很久,后来自己码了验证一下,该是什么对象还是什么对象,还有多态应用我的理解是:Animal two=new Cat();是为了编译的时候是通过引用类型来判断方便传入对象,而运行时该用什么对象还是用什么对象,Cat cat = (Cat)two;更多是传数据后进行还原引用,  要是助教回复你了,你回复我一下我来看看我说的对不对

  • hpbrave 提问者 #1
    好的 谢谢 等助教回复了我再告诉你
    2017-05-15 12:11:43
  • hpbrave 提问者 #2
    小叶子助教夸你说的很好
    2017-05-15 20:11:03
  • 莨菽菽 回复 提问者 hpbrave #3
    3Q,我之前也是问过助教的
    2017-05-15 22:40:49
好帮手慕雪 2017-05-15 13:42:16

是的,“比如Animal two=new Animal();”就不能强转为Cat类了。莨菽菽理解的很到位,祝:学习愉快

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师