java父类可以强转为子类吗_java父类可以强制转化成子类吗?
转自: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父类可以强制转化成子类吗?相关推荐
- java父类可以强制转化成子类吗?
转自:http://blog.csdn.net/ld422586546/article/details/9707997 Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换 ...
- java 父类强制转换为子类_[java]Java中父类强制转换成子类的原则
Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用. 例: public class Test { public static void main(Str ...
- C#里氏转换,子类赋值父类,父类强制转换成子类的理解
C#里氏转换,子类赋值父类,父类强制转换成子类的理解 最近在学习C#,在父类和子类的学习上有不理解的地方. Father f = new Son(); 这样的一个实例化程序中,内存时怎么样处理的,为什 ...
- java 父类引用子类对象_java 父类引用指向子类对象
1. 无论是泛型还是普通父类引用指向子类对象,父类引用可见范围都是父类自己的变量或函数 2. 说明见注释 代码如下:父类 package com.atguigu.spring.beans; publi ...
- Java继承关系中,父类不可以强制转换成子类
总结: 父类不可以强转为子类 父类中只存放共性抽象类方法,子类可以存放特性方法,所以子类 首先构建好两个类 构建继承类方法-点击查看 在Main中强制将父类转换为子类 Student a = (Stu ...
- java中子类与父类强制转换_java中父类强制转换成子类的错觉
引言:父类引用指向子类对象在java中十分常见,比如: Object object=new a();//a是一个类名 但是有时候我们看见子类引用指向了父类对象,就是上边的反过来,比如 图片中圈1标识的 ...
- java父类子类顺序_java父类子类內部程序的执行顺序
之前一致沒有認真研究這個問題,今天在研究JAVA類加載順序時突然想好好地研究研究.實驗總結如下: step 1.父類的靜態成員和靜態塊(靜態變量和靜態塊屬同一級,自上而下執行) step 2.子類的靜 ...
- java中父类强制转换成子类的错觉
引言:父类引用指向子类对象在java中十分常见,比如: Object object=new a();//a是一个类名 但是有时候我们看见子类引用指向了父类对象,就是上边的反过来,比如 图片中圈1标识的 ...
- java中doc文件转为pdf文件_java将doc文件转换为pdf文件的三种方法
标签: http://feifei.im/archives/93 ---------------------------------------------- 项目要用到doc转pdf的功能,一番go ...
- java中父类强制转换成子类的原则
Yes: 1.首先构造个Son对象,然后声明个Father类型的变量指向它(Son对象实例被向上转型为father,但在内存中的本质还是Son类型) Father father = new Son() ...
最新文章
- 向Relay添加算子
- 强化学习6——Value-based RL和Policy-based RL 的区别
- Python最佳代码实践:性能、内存和可用性!
- applicationContext.xml文件配置模板
- SCUT - 243 - 宝华复习 - 二分 - 桶计数
- 计算机专业薪资首超金融,“年薪20万”大学专业排名出炉,人工智能蝉联榜首,金融无缘前五...
- 对拳击“海盗式”打法特点的剖析
- js将金额转为大写汉字
- opencv-python将两个文件夹下的照片拼接一起,然后保存
- ligerui combobox ajax,ligerui给ligerForm中的ligerComboBox添加事件
- verilog中define、parameter、localparam的区别
- 2020年,拒绝划水,如何规划前端学习新路径?
- 工业网络安全 智能电网,SCADA和其他工业控制系统等关键基础设施的网络安全(总结)...
- css设置始终显示滚动条
- 【每日一题】【[JSOI2007]建筑抢修】
- 如何成为一颗 GitHub Star
- RANSAC点云多平面拟合分割
- 万象更新·无锁不成|揭秘中科易安2021全新人才战略
- python的gmtime函数_关于python:是否有time.gmtime()的反函数将UTC元组解析为自纪元以来的秒数?...
- OpenCV简明教程
热门文章
- EasyUI:combobox设置不可编辑更改
- CSS:实现流光按钮类
- java实现多线程断点续传,上传下载
- 基本数据类型与字符串之间的转换
- 论文笔记_S2D.34-2015-CVPR_从单张图像进行深度估计的深度卷积神经场
- 算法笔记_什么是数据结构_向量vector
- wenbao与cf整数直角三角形
- Maven运行报错:-Dmaven.multiModuleProjectDirectory system propery is not set.
- js 获得网页背景色和字体色
- libvirt 创建的文件