Java父类强制转换子类原则
转载自 Java父类强制转换子类原则
最近,微信群友在讨论子类父类的转换问题,其实不难,给大家用实例来说明一下就很明了了。
我们知道Java中子类转换成父类是没有任何问题的,那父类可以转换成子类吗?
来看下面这段程序:
public class TestObjectConvert { public static void main(String[] args) {test1();test2();} private static void test1() {Fruit fruit1 = new Fruit();Apple apple1 = new Apple();apple1 = (Apple) fruit1; // java.lang.ClassCastException} private static void test2() {Fruit fruit1 = new Apple();Apple apple1 = new Apple();apple1 = (Apple) fruit1;} static class Fruit { } static class Apple extends Fruit { } }
结果是:
test1:报类转异常; test2:转换正常。
所以,想让父类强制转换成子类,不是没有可能,除非父类是子类构造出来的实例,不然是不能强转的。
为什么呢?
如上代码,如果父类实例出来的对象是Orange,Orange当然不能强制转成Apple,所以说父类只有该子类对应的实例才能强转。
Java父类强制转换子类原则相关推荐
- java 父类强制转换为子类_[java]Java中父类强制转换成子类的原则
Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用. 例: public class Test { public static void main(Str ...
- java 父类强制转换为子类_父类强制转换为子类
java的强制类型转换 强制类型转换,又叫造型.分为基本数据类型和引用数据类型两种情况,这里探讨后者,即引用类型的强制类型转换. 对于引用类型来说,什么是强制类型转换呢?简单地说,就是把父类型转换为子 ...
- C#里氏转换,子类赋值父类,父类强制转换成子类的理解
C#里氏转换,子类赋值父类,父类强制转换成子类的理解 最近在学习C#,在父类和子类的学习上有不理解的地方. Father f = new Son(); 这样的一个实例化程序中,内存时怎么样处理的,为什 ...
- JAVA父类引用指向子类的对象是什么意思?有什么作用?
转自:http://zhidao.baidu.com/question/397089741.html JAVA父类引用指向子类的对象是什么意思?有什么作用? 给你举个简单的例子吧.类A,另外一个类B继 ...
- java中子类与父类强制转换_java中父类强制转换成子类的错觉
引言:父类引用指向子类对象在java中十分常见,比如: Object object=new a();//a是一个类名 但是有时候我们看见子类引用指向了父类对象,就是上边的反过来,比如 图片中圈1标识的 ...
- java中父类强制转换成子类的错觉
引言:父类引用指向子类对象在java中十分常见,比如: Object object=new a();//a是一个类名 但是有时候我们看见子类引用指向了父类对象,就是上边的反过来,比如 图片中圈1标识的 ...
- Java中父类强制转换为子类的可能
之前徒弟问了一个问题, 在Java中, 父类对象到底能不能转换成对应的子类对象? 到底能不能, 今天就来说说这个问题, 先看下面一段代码: package cn.com.hanbinit.test; ...
- C#父类强制转换成子类,子类隐式转换成父类
看你将父类引用到的是父类对象还是子类对象了. 比如Person类是Student的父类 那么可以将p直接强制转换为Student: Person p=new Student(); Student s= ...
- JAVA类型强制转换
1.背景 在 Java 中,之所以需要强制类型转换是为了防止程序员在不知情的情况下把A类型数据错当成B类型的数据.将一种类型的值赋给另一个类型的变量是很常见的,如果这两种是兼容的,那么 Java 将执 ...
最新文章
- 运动目标跟踪__kalman
- 二次元会让人脸识别失效吗?
- 关于sqlserver和oracle的一点感受
- 车道检测源码分析系列
- Excel 技术篇-跨页签统计某一区域下符合条件值的数量方法,COUNTIF函数、数量统计公式的用法实例演示
- python批量处理jira上的issue
- fabric sdk php,基于 Fabric-SDK-Go 的Web项目实战之使用Fabric-SDK-Go满足依赖
- httplib 和 httplib2区别之 gzip解压
- Java线程池的工作原理与实现
- Django(part34)--一对多映射
- .NET 中安全高效跨平台的模板引擎 Fluid 使用文档
- 干货整理:处理不平衡数据的技巧总结!收好不谢
- 软考系统架构师笔记-最后知识点总结(五)
- 网络协议从入门到底层原理(8)HTTPS(成本、通信过程、TLS1.2的连接,配置服务器HTTPS)
- 使用WCF实现消息推送
- 139邮件服务器怎么设置,139手机邮箱的设置
- 基于百度翻译api的命令行翻译助手
- openmv实现二维码识别与串口发送
- homelede软路由设置方法_低成本组装一台LEDE软路由
- RecyclerView 条目很少时,onBindViewHolder没有被调用,导致item状态错乱
热门文章
- [mybatis]select_resultMap_自定义结果集映射规则
- [JavaWeb-Servlet]概述与快速入门
- [剑指offer]面试题22:栈的压入、弹出序列
- RNN循环神经网络概述
- ImportError: libicui18n.so.56 and/or libicui18n.so.58 when importing cv2
- E. Beautiful Subarrays(思维 01 trie 树)
- HDU - 7054 Yiwen with Formula 分治拆位FFT + dp + 费马小定理降幂
- AGC005D - ~K Perm Counting(组合数学,背包,dp)
- P4009 汽车加油行驶问题
- CF741C Arpa’s overnight party and Mehrdad’s si