读Thinking in Java中关于向下转型和强制类型转换的问题,大家来讨论一下。 强类型转换可以发生在:1)子类转换成父类 只要B b; b instanceof A 为true,那么b就可以强转换成A类型2)基本数据类型之间 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 基本类型的强制转换就不说了。引用类型的强制转换有一些先决条件:首先分清对象和引用。对象在存在于内在中的一个实体,而引用是是告诉程序可以在哪里找到这个实体。由于 Java 不允许直接操作内存,所以我们对实体没有直观的印象。然后,搞明白,强制转换是发生在引用上的,不是发生在实体上的。从子类引用转换到父类引用,是不需要强制转换的。比如,你可以说女人是人,但你不能说人是女人,就是这个道理。强制转换发生在父类引用到子类引用的情况下,但先决条件是实体的实际类型,必须是强制转换后的类型的子类型。比如,一个女人,有这么一个实体,我用“人”来表示他。但进厕所的时候,要分男女,所以我说这个人是女人,可以进女厕所。但如果我说他是男人(比如打扮为男人),可她实际是女人,那么我说他是男人这就是错的,在 Java 里叫 ClassCaseException (好像是这个) 儿子转到父亲,无条件OK父亲转到儿子,编译OK, 运行可能ClassCastException不是直系亲属的两个class之间,编译错误 那么什么时候父亲转到儿子,编译OK,运行也OK呢? 就是我说的那种情况才运行也OK啊。实体是什么,才能转换成什么(以及这个类型的父类型),否则就会 ClassCaseException 了。也就是说一个对象持有父类的引用而实体是子类的,就可以把父类的引用强制转换为子类的引用,是不是这样理解?理解正确! 一个读文件的问题!! 在JFrame中可以弹出消息框么? 非法的表达式开始,需要;,需要} 选择题4道求教 【推荐】 软件发布 提出一个小问题供讨论! 求助1,谢谢! 请问为什么我的jdk显示不了中文了????全是方框?我昨天用的还是好好的,今天就不行了,各位大哥救命啊 请指教!!编程出错!!请大虾指点!PING的问题!! 请各位高手救救小弟!!! 求助JAVA问题 JAVA播放器怎么实现音量控制?
引用类型的强制转换有一些先决条件:首先分清对象和引用。对象在存在于内在中的一个实体,而引用是是告诉程序可以在哪里找到这个实体。由于 Java 不允许直接操作内存,所以我们对实体没有直观的印象。然后,搞明白,强制转换是发生在引用上的,不是发生在实体上的。从子类引用转换到父类引用,是不需要强制转换的。比如,你可以说女人是人,但你不能说人是女人,就是这个道理。强制转换发生在父类引用到子类引用的情况下,但先决条件是实体的实际类型,必须是强制转换后的类型的子类型。比如,一个女人,有这么一个实体,我用“人”来表示他。但进厕所的时候,要分男女,所以我说这个人是女人,可以进女厕所。但如果我说他是男人(比如打扮为男人),可她实际是女人,那么我说他是男人这就是错的,在 Java 里叫 ClassCaseException (好像是这个)
父亲转到儿子,编译OK, 运行可能ClassCastException
不是直系亲属的两个class之间,编译错误
理解正确!