转自:http://blog.csdn.net/ld422586546/article/details/9707997

Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用。

例:

public class Test {

public static void main(String[] args) {

Person person = new Boy();

Boy boy = (Boy) person;

boy.eat();

}

}

class Person {

public void eat() {

System.out.println("The people were eating");

}

}

class Boy extends Person {

public void eat() {

System.out.println("The boy were eating");

}

}

打印结果:The boy were eating

原因:当Boy实例化后将引用地址返回传给person,这时person引用实际指向的是Boy,所以将person转换成Boy能成功。

再定义一个类:

class Girl extends Person {

public void eat() {

System.out.println("The girl were eating");

}

}

main方法中添加:

Person p = new Girl();

Boy b = (Boy)p;

b.eat();

运行时提示:Girl cannot be cast to Boy(不能将女孩转换成男孩)

原因:当Girl实例化后将引用地址返回传给p,这时p引用实际指向的是Girl,将p转换成Boy也就是说将Girl转换成Boy,肯定不能成功。

上面的例子换句话来说,男孩和女孩都是人这肯定是对的,但你要说女孩是男孩肯定是不对的。

java父类可以强转为子类吗_java父类可以强制转化成子类吗?相关推荐

  1. java父类可以强制转化成子类吗?

    转自:http://blog.csdn.net/ld422586546/article/details/9707997 Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换 ...

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

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

  3. C#里氏转换,子类赋值父类,父类强制转换成子类的理解

    C#里氏转换,子类赋值父类,父类强制转换成子类的理解 最近在学习C#,在父类和子类的学习上有不理解的地方. Father f = new Son(); 这样的一个实例化程序中,内存时怎么样处理的,为什 ...

  4. java 父类引用子类对象_java 父类引用指向子类对象

    1. 无论是泛型还是普通父类引用指向子类对象,父类引用可见范围都是父类自己的变量或函数 2. 说明见注释 代码如下:父类 package com.atguigu.spring.beans; publi ...

  5. Java继承关系中,父类不可以强制转换成子类

    总结: 父类不可以强转为子类 父类中只存放共性抽象类方法,子类可以存放特性方法,所以子类 首先构建好两个类 构建继承类方法-点击查看 在Main中强制将父类转换为子类 Student a = (Stu ...

  6. java中子类与父类强制转换_java中父类强制转换成子类的错觉

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

  7. java父类子类顺序_java父类子类內部程序的执行顺序

    之前一致沒有認真研究這個問題,今天在研究JAVA類加載順序時突然想好好地研究研究.實驗總結如下: step 1.父類的靜態成員和靜態塊(靜態變量和靜態塊屬同一級,自上而下執行) step 2.子類的靜 ...

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

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

  9. java中doc文件转为pdf文件_java将doc文件转换为pdf文件的三种方法

    标签: http://feifei.im/archives/93 ---------------------------------------------- 项目要用到doc转pdf的功能,一番go ...

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

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

最新文章

  1. 向Relay添加算子
  2. 强化学习6——Value-based RL和Policy-based RL 的区别
  3. Python最佳代码实践:性能、内存和可用性!
  4. applicationContext.xml文件配置模板
  5. SCUT - 243 - 宝华复习 - 二分 - 桶计数
  6. 计算机专业薪资首超金融,“年薪20万”大学专业排名出炉,人工智能蝉联榜首,金融无缘前五...
  7. 对拳击“海盗式”打法特点的剖析
  8. js将金额转为大写汉字
  9. opencv-python将两个文件夹下的照片拼接一起,然后保存
  10. ligerui combobox ajax,ligerui给ligerForm中的ligerComboBox添加事件
  11. verilog中define、parameter、localparam的区别
  12. 2020年,拒绝划水,如何规划前端学习新路径?
  13. 工业网络安全 智能电网,SCADA和其他工业控制系统等关键基础设施的网络安全(总结)...
  14. css设置始终显示滚动条
  15. 【每日一题】【[JSOI2007]建筑抢修】
  16. 如何成为一颗 GitHub Star
  17. RANSAC点云多平面拟合分割
  18. 万象更新·无锁不成|揭秘中科易安2021全新人才战略
  19. python的gmtime函数_关于python:是否有time.gmtime()的反函数将UTC元组解析为自纪元以来的秒数?...
  20. OpenCV简明教程

热门文章

  1. EasyUI:combobox设置不可编辑更改
  2. CSS:实现流光按钮类
  3. java实现多线程断点续传,上传下载
  4. 基本数据类型与字符串之间的转换
  5. 论文笔记_S2D.34-2015-CVPR_从单张图像进行深度估计的深度卷积神经场
  6. 算法笔记_什么是数据结构_向量vector
  7. wenbao与cf整数直角三角形
  8. Maven运行报错:-Dmaven.multiModuleProjectDirectory system propery is not set.
  9. js 获得网页背景色和字体色
  10. libvirt 创建的文件