A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Wokno 中级黑马   /  2014-6-6 18:09  /  814 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Wokno 于 2014-6-6 18:10 编辑

强制类型转换:
            进行类型转换的唯一原因是:在暂时忽视对象的实际类型之后,使用对象的全部功能。


  1.     if (staff[1] instanceof Manager) {  
  2.         boss = (Manager) staff[1];  
  3.         ....  
  4.     }  
复制代码



总结:
            1、只能在继承层次内进行类型转换。
            2、在将超类转换为子类之前,应该使用“instanceof”进行检查。
            3、如果鉴于某种原因,发现需要通过超类对象调用其子类方法,那么就应该检查下超类的设计是否合理。重新设计一下超类,并添加其方法才是正确的选择。只要没有捕获ClassCastException异常,程序就会终止执行。在一般情况下,应该尽量少用类型转换和instanceof运算符。



1 个回复

正序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马