您的位置:首页 > 其它

面向对象_多态中的对象变化内存图解

2016-10-06 18:07 295 查看


/*
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(类转换异常)
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: