轉型前後的資料類型是...?

轉型前後的資料類型是...?

請問,已知Animal為父類、Dog、Cat為子類的情況下
1.下面圖片中的程式碼,關於變量one、two的資料型別是否為Animal類?three、four的資料型別是否為Cat或Dog類?
2.如果我將『向上轉型』理解為:使用子類當作模板創造出一個父類的對象,所以創造出來的對象只能調用的它自己(父類)的方法,請問這樣的想法是正確的嗎?
2.如果我將『向下轉型』理解為:把向上轉型的變量,透過強制轉型(前提是用instanceof檢查是否可以轉換)為原本的子類對象,讓變量可以調用本屬於自己的子類方法,請問這樣的想法是正確的嗎?

http://img1.sycdn.imooc.com//climg/5f06e4320867425910140830.jpg

http://img1.sycdn.imooc.com//climg/5f06e43608f934ba10250473.jpg


正在回答

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

1回答

同学你好,如下对同学的代码进行一一回复:

1、下面圖片中的程式碼,關於變量one、two的資料型別是否為Animal類?

同学这里的one是指如下这个嘛?

http://img1.sycdn.imooc.com//climg/5f06f3e3099cbe6d04660070.jpg

如果是,理解是对的

2、three、four的資料型別是否為Cat或Dog類?

不是,three是Animal类类型的引用。其次关于four,建议同学截图完整一些

http://img1.sycdn.imooc.com//climg/5f06f51a09aadccc02940061.jpg

3、未能准确理解同学说的意思,建议同学重新描述。

Ps:父类引用指向子类对象就是向上转型。这里同学可以结合图中代码理解:

Cat继承Animal类的前提下,我们定义一个Animal的引用:

Animal animal;

指向Cat对象:

animal=new Cat();

合起来,父类引用指向子类对象,即:

Animal animal=new Cat();

4、理解是可以的

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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