1. 程式人生 > >java學習日記_40:多型的記憶體圖示以及常見錯誤

java學習日記_40:多型的記憶體圖示以及常見錯誤

記憶體使用圖1:



記憶體使用圖2:



————————————————

/*

ClassCastException:型別轉換異常
一般在多型的向下轉型中容易出現
*/
class Animal {
public void eat(){}
}


class Dog extends Animal {
public void eat() {}

public void lookDoor() {

}
}


class Cat extends Animal {
public void eat() {

}

public void playGame() {

}
}


class DuoTaiDemo5 {
public static void main(String[] args) {
//記憶體中的是狗
Animal a = new Dog();
Dog d = (Dog)a;

//記憶體中是貓
a = new Cat();
Cat c = (Cat)a;

//記憶體中是貓
Dog dd = (Dog)a; //ClassCastException
}
}