
/*
ClassCastException:类型转换异常
一般在多态的向下转型中容易出现
*/
class Animal{
public void eat(){
System.out.println("该吃饭了");
}
}
class Dog extends Animal{
public void eat(){
System.out.println("狗,该吃饭了");
}
public void lookDoor(){
System.out.println("狗看家");
}
}
class Cat extends Animal{
public void eat(){
System.out.println("猫,该吃饭了");
}
public void playGame(){
System.out.println("猫玩英雄联盟");
}
}
class DouTaiDemo5{
public static void main(String[] args){
//内存中是狗
Animal a = new Dog();
a.eat();
//a.lookDoor();//报错
Dog d = (Dog)a;
d.eat();
d.lookDoor();
System.out.println("----------------------");
//内存中是猫
a = new Cat();
a.eat();
//a.playGame();//报错
Cat c = (Cat)a;
c.eat();
c.playGame();
System.out.println("----------------------");
//内存中是猫
//Dog dd = (Dog)a;//ClassCastException(类转换异常)
}
}