黑马程序员技术交流社区

标题: 类类型转知识与报错情况总结 [打印本页]

作者: zhangyuren    时间: 2016-10-29 23:08
标题: 类类型转知识与报错情况总结
正确:

//一个动物类对象是狗,可以转换成狗类
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:类转换异常



作者: 一小丢丢    时间: 2016-10-29 23:14
嗯,不错
作者: 黑马初学者    时间: 2016-10-30 00:30
可以的,加油
作者: Kevin_Ye    时间: 2016-10-30 10:06
感谢分享





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2