之前徒弟问了一个问题, 在Java中, 父类对象到底能不能转换成对应的子类对象?

到底能不能, 今天就来说说这个问题, 先看下面一段代码:

package cn.com.hanbinit.test;
/*** 检验父类是否可以强转为子类* @author icer**/
public class ConvertPro extends Father {public static void main(String[] args) {Father father = new Father();Father father1 = new ConvertPro();ConvertPro son = new ConvertPro();// ConvertPro son1 = (ConvertPro) new Father();// son = (ConvertPro)father;son = (ConvertPro) father1;}
}/*** 父类* * @author icer* */
class Father {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}
}

上面代码注释掉的两行是会运行错误的. 根据代码显示,  只有我们的父类对象本身就是用子类new出来的时候, 才可以在将来被强制转换为子类对象.

子类继承父类的所有(包括属性以及方法), 也就是说子类包含的内容应该是比父类要大的. 如果正常环境下, 把一个父类转换成子类一定会损失精度.  但是如果父类对象本身就是用

子类去new出来的, 就类似于一个本来就是儿子角色的人, 去装了一会儿父亲, 这个角色是可以在未来转换回去的, 但是一个父亲, 永远不可能去装儿子的.

转载于:https://www.cnblogs.com/hanbin/p/4780607.html

Java中父类强制转换为子类的可能相关推荐

  1. java 父类强制转换为子类_[java]Java中父类强制转换成子类的原则

    Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用. 例: public class Test { public static void main(Str ...

  2. java中父类强制转换成子类的错觉

    引言:父类引用指向子类对象在java中十分常见,比如: Object object=new a();//a是一个类名 但是有时候我们看见子类引用指向了父类对象,就是上边的反过来,比如 图片中圈1标识的 ...

  3. Java中父类引用指向子类对象好处

    比如对于HashMap与Map的理解: HashMap 是 Map 接口的常用实现类(Map是一个接口),是一个键值对集合, 建议使用实现接口的方式使用Map,如:Map<String, Obj ...

  4. java 父类强制转换为子类_父类强制转换为子类

    java的强制类型转换 强制类型转换,又叫造型.分为基本数据类型和引用数据类型两种情况,这里探讨后者,即引用类型的强制类型转换. 对于引用类型来说,什么是强制类型转换呢?简单地说,就是把父类型转换为子 ...

  5. java中父类强制转换成子类的原则

    Yes: 1.首先构造个Son对象,然后声明个Father类型的变量指向它(Son对象实例被向上转型为father,但在内存中的本质还是Son类型) Father father = new Son() ...

  6. Java中父类构造方法对子类构造方法的影响(不是一句话可以说清的)

    推荐的阅读顺序是:先看Test类,再根据提示看父类和子类 让我们通过代码来了解一下: 创建一个父类: public class Father{public Father(){super();//默认调 ...

  7. java中父类与子类的关系以及使用

    java中父类与子类的关系以及使用 在java中规定:一个父类可以有多个子类,但是一个子类只能有一个父类.子类可以通过extends关键字来继承父类.做个比较通俗的比喻,就像一个父亲可以有多个亲孩子, ...

  8. Java父类强制转换子类原则

    转载自 Java父类强制转换子类原则 最近,微信群友在讨论子类父类的转换问题,其实不难,给大家用实例来说明一下就很明了了. 我们知道Java中子类转换成父类是没有任何问题的,那父类可以转换成子类吗? ...

  9. java中父类与子类有相同属性调谁?取决于左边

    java中父类与子类有相同属性调谁?答案是:取决于左边! 一. 在今天的继承复习当中,我有对继承中的属性有新的感悟------>子类继承父类,会继承父类的方法和属性,看下图: 从上图可以看出,即 ...

最新文章

  1. mysql分库一个库和多个库_数据库分库后不同库之间的关联
  2. 字节跳动 录屏功能_一周盘点:Instagram打通视频购物功能 公开叫板TikTok;字节跳动要大力布局跨境出口电商?...
  3. 惊了,老板要我开发一个工作流引擎!
  4. ubantu获取信息_Ubuntu 下查看CPU 信息命令
  5. Excel 货币中文大写汉字转化
  6. 红橙Darren视频笔记 Activity启动流程(API28)
  7. 初步计算机技术的书,计算机控制技术务书.doc
  8. DataBseDesign工作笔记003---ERStudio使用笔记_基本使用方法详解
  9. 全向轮机器人正前轮运动学分析
  10. multiprocessing.manager管理的对象需要加锁吗_【极客思考】设计模式:你确定你真的理解了单例模式吗?...
  11. C++ 需要返回值的函数却没有返回值的情况 单例模式
  12. android recyclerview item自适应高度_web前端学习:高度自适应知识点
  13. 第五代移动通信——5G
  14. 动物棋c语言程序,斗兽棋游戏手机版|斗兽棋游戏下载 v0.2C 安卓版_最火软件站...
  15. php中跟时间有关的处理(时区设置,计算时间差,获取系统当前时间)
  16. 像计算机科学家一样思考在线,如何像计算机科学家一样思考?(女生篇)
  17. 使用 Javascript 创建和生成 UUID
  18. 自己写的C盘清理工具 Ver1.0.0
  19. qinghua大乱斗C
  20. 2021-12-22 WPF上位机 116-三菱PLC协议

热门文章

  1. linux新建两个工作组,linux添加工作组
  2. winform listbox 没有listitem的问题
  3. [原]防火墙安装配置(日志)
  4. OpenSSL历史版本整理
  5. ASP.NET——C#文件夹创建与文件存在判断
  6. Kubernetes中StatefulSet介绍
  7. Visual Studio 2017 RC版发布 自带iOS模拟器
  8. mysql注入如何读取本地文件_如何通过SQL注入获取服务器本地文件
  9. bootstrap的表单验证 vue_分享几个基于Vue的UI库和开源项目
  10. OpenCC繁体文章转换成简体字