正确:
//一个动物类对象是狗,可以转换成狗类
Animal a = new Dog();
Dog d = (Dog)a;
//一个动物类对象是猫,可以转化成猫类
Animal a = new Cat();
Cat c = (Cat)a;
错误:
//一个狗类对象是动物,不可以
Dog dd = new Animal();
**编译时就报错 提示:不兼容的类型
//一个狗类对象是猫,不可以
Dog ddd = new Cat();
**编译时就报错 提示:不兼容的类型
/*
一个动物类对象是猫
动物类对象向下转型成猫类
再想转型成狗类
*/
Animal a = new Cat();
Cat c = (Cat)a; //a对象的堆内存空间是Cat类型数据
Dog dd = (Dog)a; //a对象的堆内存就无法向下转型成Dog类型
**编译时不报错,运行时报错 提示:ClassCastException:类转换异常
|
|