亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

為什么強制轉換的對象dog2不能打印出來呢

public?class?Initial2?{	
@SuppressWarnings("unused")	
public?static?void?main(String[]?args)?{		
//?TODO?Auto-generated?method?stub		
Dog?dog=new?Dog();		
Animal?animal=dog;//向上類型轉換,隱式轉換		
if(animal?instanceof?Dog){		
Dog?dog2=(Dog)animal;//向下類型轉換,強制類型轉換		
System.out.println("Dog型轉換成了Animal型了");		
}else{		
System.out.println("Dog型不能轉換成Animal型");		
}		
if(animal?instanceof?Cat){			
Cat?cat=(Cat)animal;		
}else{			
System.out.println("不能轉換成Cat型");		
}								
System.out.println(dog);		
System.out.println(animal);		
System.out.println(dog2);//難道強制轉換的對象不能打印					
}
}

https://img1.sycdn.imooc.com//5ca1572500015b1d09810348.jpg

正在回答

5 回答

dog2對象在if語句中,所以才打印不出來,有可能不執行

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

public static void main(String[] args) {

// TODO Auto-generated method stub

dog dog1=new dog();

dog dog2=new dog();

cat cat1=new cat();

?

animal animal1=cat1;

if(animal1 instanceof dog)

{

dog1=(dog)animal1;

System.out.println("狗可以轉化成動物類");

}

else

{

System.out.println("狗不可以轉化成動物類");

}

if(animal1 instanceof cat)

{

cat1=(cat)animal1;

System.out.println("貓可以轉化成動物類");

}

else

{

System.out.println("貓不可以轉化成動物類");

}

System.out.println(dog1);? ? ? ?

System.out.println(animal1);? ??

System.out.println(cat1);

}

}


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

不是Dog型轉換成了Animal型了
是把Animal型強制轉換成Dog型

建議多看幾遍

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

強制轉換完的對象也是對象,當然可以打印。你的錯誤在于dog2在if{}里,外面取不到,

把System.out.println(dog2);放在第9行就可以了

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

向下類型轉換時容易出錯,需要加instanceof可以防止轉換出錯。

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

慕無忌7406412 提問者

你這個回答完全沒沾到邊啊!
2019-04-02 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么強制轉換的對象dog2不能打印出來呢

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

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號