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);//難道強制轉換的對象不能打印
}
}

2019-04-30
dog2對象在if語句中,所以才打印不出來,有可能不執行
2019-05-29
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);
}
}
2019-05-26
不是Dog型轉換成了Animal型了
是把Animal型強制轉換成Dog型
建議多看幾遍
2019-04-30
強制轉換完的對象也是對象,當然可以打印。你的錯誤在于dog2在if{}里,外面取不到,
把System.out.println(dog2);放在第9行就可以了
2019-04-01
向下類型轉換時容易出錯,需要加instanceof可以防止轉換出錯。