正在回答
2回答
你好,A不对的原因是如果2处new的是一个动物,那么1处只能走else了,强制转为Roo就会报错了。C不对的原因是1处,这样就限定死了,传回的动物必须是Dog,程序太死。祝:学习愉快
lijikai1937
2017-06-05 11:29:26
((Dog) animal).shout(); /*把c改一下就可以输出了,上面这样。 B就是添加了逻辑判断,因为我们有两个子类,为了严谨,必须把所有的情况都考虑进去,其实我也觉得没必要 加判断,但是为了程序更好,加比较好*/ Animal animal=new Animal(); /*创建一个animal对象,可是你看一下,Animal这个类里面是什么都没有的。我觉得这里可以理 解为它只是用来乘装我们后面创建的子类对象的。否则你在参数传递的时候就需要写两种方法了。 Animal animal 可以接收Dog类的对象,也可以接收Roo类的对象。我们后面调用的方法,全部都是子类特有的方法。不是重写父类的 话说我当时选对了,好像也没仔细看,看了半天才知道怎么给你回答的。你还有啥想知道的吗?希望帮到你啊*/
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星