class Test {
public static void main(String[] args) {
Animal a =new Animal();
Animal b =new Dog();
Animal c =new Bird();
Animal d =new Fish();
a.move();
b.move();
c.move();
d.move();
}// end of main(String[])
}// end of class Test
class Test {
public static void main(String[] args) {
Animal a=new Animal();
Dog d =new Dog();
Bird b = new Bird();
Fish f =new Fish();
moveAnimal(a);
moveAnimal(d);
moveAnimal(b);
moveAnimal(f);
}
static void moveAnimal(Animal ani){
ani.move();
}
}// end of class Test
move...move...
跑...跑...
飛...飛...
游...游...
Dog d = new Dog();
Animal a1 = d; // Java幫你作了型態轉換,但你看不到,等價於下行
Animal a2 = (Animal)d; // 自己寫是一樣的
moveAnimal(d); // 等價於下行
moveAnimal((Animal)d);
Animal ani = new Animal();
Dog d = (Dog)ani; // 母類別強制轉型為子類別
Exception in thread "main" java.lang.ClassCastException:
Animal cannot be cast to Dog