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

2019-04-30
dog2對(duì)象在if語句中,所以才打印不出來,有可能不執(zhí)行
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("狗可以轉(zhuǎn)化成動(dòng)物類");
}
else
{
System.out.println("狗不可以轉(zhuǎn)化成動(dòng)物類");
}
if(animal1 instanceof cat)
{
cat1=(cat)animal1;
System.out.println("貓可以轉(zhuǎn)化成動(dòng)物類");
}
else
{
System.out.println("貓不可以轉(zhuǎn)化成動(dòng)物類");
}
System.out.println(dog1);? ? ? ?
System.out.println(animal1);? ??
System.out.println(cat1);
}
}
2019-05-26
不是Dog型轉(zhuǎn)換成了Animal型了
是把Animal型強(qiáng)制轉(zhuǎn)換成Dog型
建議多看幾遍
2019-04-30
強(qiáng)制轉(zhuǎn)換完的對(duì)象也是對(duì)象,當(dāng)然可以打印。你的錯(cuò)誤在于dog2在if{}里,外面取不到,
把System.out.println(dog2);放在第9行就可以了
2019-04-01
向下類型轉(zhuǎn)換時(shí)容易出錯(cuò),需要加instanceof可以防止轉(zhuǎn)換出錯(cuò)。