关于类型转换的问题

关于类型转换的问题

问题描述:

老师,这里的next()方法返回的是Object类型的对象,为什么不用强制转换成Cat类型就能输出对象的宠物猫类的信息了呢?

相关截图:

http://img1.sycdn.imooc.com//climg/604b6063090d2d6311440491.jpg

正在回答

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

2回答

同学你好,在定义set集合中有定义泛型,如下图所示:则在添加时,会根据泛型添加Cat类中的数据,从而当获取数据时,可以不进行转换。

http://img1.sycdn.imooc.com//climg/604d6bc309c1152206820248.jpg

    ​而在ArrayList集合中并未设置泛型,则不确定添加是那种类型的数据,从而在输出时需要进行强制转换了。当同学为ArrayList集合设置泛型时,也可以不进行强制转换。如下图所示:

http://img1.sycdn.imooc.com//climg/604d6c7309a88d4010080380.jpg

注:泛型是在定义类、接口、方法的时候不局限地指定某一种特定类型,而让类、接口、方法的调用者来决定具体使用哪一种类型的参数。现阶段了解一下即可,在后期会详细讲解。

祝学习愉快!

好帮手慕小尤 2021-03-13 10:19:40

同学你好,返回是Object类型,则因Object是所有类的超类,并在java中允许返回子类,所以此方法可以返回值任何类型(如:Cat类)。

   综上所示在CatTest中,Set集合存放的是Cat对象,it.next()得到的就是Cat对象了。

祝学习愉快!

  • 提问者 慕尼黑3413982 #1

    http://img1.sycdn.imooc.com//climg/604ca14709855bbf11050748.jpg

    那老师,为什么这里要进行强制类型的转换

    2021-03-13 19:30:26
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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