正在回答
2回答
同学你好,1. (Dog)animal.shout()是转换结果,但调用方法后不能强制转换,所以(Dog)animal.shout()是错误的语句,而((Dog)animal).shout()是将animal对象的类型进行转换。
2. 在test类中父类引用指向子类实例,是无法调用子类独有的方法,所以需要进行转换。
注:同学可以写代码尝试一下。如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
好帮手慕小尤
2019-10-29 11:31:01
同学你好,1. 同学是指(Dog)animal.shout()与((Dog)animal).shout(),如果是,(Dog)animal.shout()表示的是:调用shout()方法后的结果转换为Dog类型。而((Dog)animal).shout()表示的是:将animal转换为Dog类型后,再调用shout()方法。
2. 这里父类的引用指向子类对象。play()方法参数是animal类型,所以需要创建animal类型,想要输出汪汪汪,应该创建Dog类的实例,所以是父类的引用Animal指向Dog类的实例
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星