請問這哪里出問題了
package chapter4;
public class Initail02 {
public static void main(String[] args) {?
? Dog02 dog=new Dog02();
? Animal02 animal=dog; //自動類型提升 向上類型轉換
? Dog02 dog2=(Dog)animal;//向下類型轉換 強制類型轉換
? Cat cat=animal;
}
}
package chapter4;
public class Initail02 {
public static void main(String[] args) {?
? Dog02 dog=new Dog02();
? Animal02 animal=dog; //自動類型提升 向上類型轉換
? Dog02 dog2=(Dog)animal;//向下類型轉換 強制類型轉換
? Cat cat=animal;
}
}
2017-09-30
舉報
2018-03-13
最好這么寫:
if(animal instanceof Cat){
?? Cat cat=(Cat)animal;
}else{
????System.out.println("Cat類未繼承Animal父類或者未重寫Animal父類屬性");
}
2018-03-13
Dog02 dog2=(Dog02)animal;Cat cat=(Cat)animal;兩處錯誤
2017-09-30
Cat cat=animal,兩個錯誤:
首先是語法錯誤,向下類型轉換用強制類型轉換應該是Cat cat=(cat)animal;
二是向下類型轉換有風險,Animal02 animal=dog;對象animal已經和dog同型,是Dog02類型,即使再強制轉換,語法沒有錯誤,編譯的時候不會報錯,但運行的時候會報錯,因為Cat類型和Dog02類型不同型,無法強制轉換。