首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

类型转换错误

2013-10-18 
类型转换异常什么情况下会导致同一种类型转换异常?比如String a (String)obj异常[解决办法]父类转子类特

类型转换异常
什么情况下会导致同一种类型转换异常?
比如String a = (String)obj 异常
[解决办法]
父类转子类特别容易出现,我是这么理解:

父类A
子类A1,A2

A a = new A1();

A2 b = (A2)a;//基本异常定了


我的想打就是父类A,只有2属性name,age;

子类A1比父类多了个address;

子类A2比父类多了个school;

A1继承A,所以当我说它是A也无可厚非,因为它就有name和age;
但是我要硬说它是A2,那school呢,显然没。


所以我记得书本上总结的一句:向下类型转换一定要看生成实例对象的是哪个类.
[解决办法]
什么情况下会导致同一种类型转换异常?
比如String a = (String)obj

obj不是String的时候导致 转换异常
[解决办法]
个人理解:向上转型一般不会,但是向下转型的话,很有可能出现异常
例如:基本数据类型转换的时候:
float a=1.0;
这样编译器是会提示的;因为a是float型的,而1.0编译器是默认double型的,那么的话,由double型转换成float型会丢失精度,所有会出现报错;

结合你上面的就可以知道了,既然你已经强制转换了,怎么会出错呢?

[解决办法]
Child1 和 Child2 都继承自 Parent。
Child1 和 Child2 都是 Parent 类型,但相互强制转换的话,会报错。
[解决办法]
向上转型都不会出现错误,系统默认,但是向下转型虚拟机会报错,需要进行强转。

热点排行