0
点赞
收藏
分享

微信扫一扫

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


面向对象_多态中的对象变化内存图解_英雄联盟

/*
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(类转换异常)
}
}



举报

相关推荐

0 条评论