关于D选项
我又看了看,自己敲了一下代码,我自己理解了一下,你看看对不对,强转的前提应该它本身是这个类型,即new构造时,指向的堆空间是它自己,但是栈里存的确实比它大的类型,如Animal one=new Cat(),所以,在类型强转后,如Cat two=(Cat)one 所以它指向的堆空间还是Cat类的,只是栈地址变了,这也是为什么Cat one=(Cat)new Animal() 会报错的原因,直接这样写,指向的是animal类的堆空间, 所以转不了Cat类的堆空间,所以运行会报错。这个D选项,想正确输出应该把new Animal()改成new Roo() ,再把下边的new也去掉就对了
1
收起
正在回答 回答被采纳积分+1
1回答
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星