class TestDemo7{
public static void main(String[] args) {
Animal a=new Dog("旺財",2);
System.out.println("名字:"+a.getName());
System.out.println("年齡:"+a.getAge());
a.eat();
Dog dog=(Dog) a;// 強轉為Dog類型
dog.zuanHuoQuan();
System.out.println("_______________________________");
a=new Cat("咪咪",3);//**此句有疑問**
System.out.println("名字:"+a.getName());
System.out.println("年齡:"+a.getAge());
a.eat();
}
}
變量a已經被轉換為 Dog類型
在創建Cat對象時 為何還是Animal類型?
首先,你這句Animal a=new Dog("旺財",2);,獲取到的a是Animal類型,
然後你進行Dog dog=(Dog) a;// 強轉為Dog類型這句代碼,只是說將a內容賦值給Dog類型的對象dog,a依舊是Animal對象啊
最後a=new Cat("咪咪",3);這句代碼,是給a重新賦值,但是,a依舊是Animal對象啊,只是內容發生變化了而已