無(wú)法進(jìn)行類(lèi)型轉(zhuǎn)換
public static void main(String[] args) {
// TODO Auto-generated method stub
// Animal obj1 = new Animal();
// Animal obj2 = new Dog();
// Animal obj3 = new Cat();
// //Dog obj3 = new Animal();出錯(cuò),不能用子類(lèi)的引用指向父類(lèi)的對(duì)象
// obj1.eat();
// obj2.eat();
// obj3.eat();
//obj2.bite();//出錯(cuò),父類(lèi)引用指向的子類(lèi)對(duì)象只能調(diào)用重寫(xiě)和繼承的方法,不能引用子類(lèi)獨(dú)有的方法
Dog dog = new Dog();
Animal animal = dog;//自動(dòng)類(lèi)型提升? 向上類(lèi)型轉(zhuǎn)換
Dog dog2 = (Dog)animal;
Cat cat = new Cat();
if(animal instanceof Cat){
Cat cat2 = (Cat)animal;//因?yàn)樽畛鮿?chuàng)建的空間為Dog類(lèi)型的空,故無(wú)法在其中實(shí)現(xiàn)Cat類(lèi)型的轉(zhuǎn)換
}else{
System.out.println("無(wú)法進(jìn)行類(lèi)型轉(zhuǎn)換");
}
}
但是我在老師得代碼中又新建了一個(gè)Cat類(lèi)型的空間,為什么還是無(wú)法進(jìn)行轉(zhuǎn)換
2019-02-19
animal 沒(méi)有指向 cat。。所以 animal instanceof Cat? 還是 false,所以無(wú)法進(jìn)行轉(zhuǎn)換
2019-04-01
老師只是講了一種避免類(lèi)型轉(zhuǎn)換的安全性問(wèn)題,的判斷