第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

強制類型轉換不能直接將父類對象轉換為子類對象嗎

在程序中,我將父類的對象強制轉換為子類的對象,為什么會報錯?既然是強制轉換,本來就是從大類型到小類型的轉換?????

package?com.imooc;

//學習多態(tài)

public?class?Initial?{

	public?static?void?main(String[]?args)?{
		//?TODO?Auto-generated?method?stub
		
		Dog?dog?=?new?Dog();
		Animal?animal?=?dog;//自動類型提升?向上類型轉換
		Animal?animal2?=?new?Animal();
		Dog?dog2?=?(Dog)animal2;//向下類型轉換?強制類型轉換
//		Cat?cat?=?(Cat)animal;
	}

}

運行結果:
Exception?in?thread?"main"?java.lang.ClassCastException:?com.imooc.Animal?cannot?be?cast?to?com.imooc.Dog
at?com.imooc.Initial.main(Initial.java:22)


正在回答

3 回答

不是你這個意思的,它原來是一只動物,你沒說它是什么動物就強行轉換成一只狗可以么?不可以!

但是 ?如果 它原來就是一只狗的話

Animal?animal?=?new?Dog();

Dog?dog2?=?(Dog)animal;

這樣就不會報錯了。

0 回復 有任何疑惑可以回復我~
#1

_天微涼_ 提問者

非常感謝!
2015-09-09 回復 有任何疑惑可以回復我~

Animal?animal?=?new?Dog();和?Dog animal?=?new?Dog();除了不能引用子類獨有的方法外,有區(qū)別嗎? ?Animal?animal?=?new?Dog();到底是怎樣的意思?

0 回復 有任何疑惑可以回復我~
#1

pickupMyhead

Animal animal = new Dog();//是創(chuàng)建了一個叫動物名稱的引用對象和狗的實例對象,并匹配。 Dog animal = new Dog();//建議以后設變量名稱精確點,這里只是創(chuàng)建了一個叫animal(建議改成dog)的狗的實例子對象。
2018-09-15 回復 有任何疑惑可以回復我~

任何時候,將父類對象強制轉換為子類對象,編譯都能通過。這句話對嗎?

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

強制類型轉換不能直接將父類對象轉換為子類對象嗎

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號