本帖最后由 Wokno 于 2014-6-6 18:10 编辑
强制类型转换:
进行类型转换的唯一原因是:在暂时忽视对象的实际类型之后,使用对象的全部功能。
- if (staff[1] instanceof Manager) {
- boss = (Manager) staff[1];
- ....
- }
复制代码
总结:
1、只能在继承层次内进行类型转换。
2、在将超类转换为子类之前,应该使用“instanceof”进行检查。
3、如果鉴于某种原因,发现需要通过超类对象调用其子类方法,那么就应该检查下超类的设计是否合理。重新设计一下超类,并添加其方法才是正确的选择。只要没有捕获ClassCastException异常,程序就会终止执行。在一般情况下,应该尽量少用类型转换和instanceof运算符。
|
|