Java中父类强制转换为子类的可能

java 子类强转父类 父类强转子类 1.基本数据类型 基本数据类型: 子类可以强转成父类,因为小范围可以强转大范围,不会有数据丢失。 父类也可以强转成子类,但是因为大范围强转成小范围,所以会有数据丢失。 2.Java 继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 Java 子类强转父类 父类引用指向子类对象: java中子类强转父类,实际上依然是子类; 该引用只能调用父类中定义的方法和变量; 如果子类中重写了父类中的一个方法,那么在调用这个方法 阅读详情

Java中父类强制转换为子类的可能

之前徒弟问了一个问题, 在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出来的, 就类似于一个本来就是儿子角色的人, 去装了一会儿父亲, 这个角色是可以在未来转换回去的, 但是一个父亲, 永远不可能去装儿子的.

IT菜菜  
阿里奇门接口联调全流程详解:从沙箱自测到正式上线的保姆级攻略 本文详细解析阿里奇门接口联调的全流程,从沙箱自测到正式上线的关键步骤与避坑指南。涵盖环境配置、业务场景测试、跨团队协作、灰度发布及生产运维监控,帮助开发者高效完成API对接,确保供应链协同系统的稳定运行。特别适合首次接触奇门对接的技术负责人参考。 阅读详情

相关推荐

vivado时序分析 实例

vivado时序分析实例建立余量保持余量 建立余量 保持余量

Bunny9__的博客 1万+

kotlin空类型转换和智能类型转换

空类型转换 fun getName(): String?{ return null } fun main(args: Array<String>) { val name = getName() //为什么报错,因为kotlin不支持空类型 println(name.length) //?就是我知道他是空类型,然后我让他执行这个空类型,这就是类型安全转换 println(name?.length) } 空类型安全转换也可以这样写,这样的写法

qq_45490395的博客 557

深度学习基于Resnet18的图像多分类--训练自己的数据集(超详细 含源码)

深度学习基于Resnet18的图像多分类--训练自己的数据集(超详细 含源码)

她是不会无条件的!! 2万+

Java父类强制转换为子类的三种情况(推荐)

/出错 ClassCastException。Java父类强制转换为子类和子类转父类有三种情况。2.父类引用子类对象强转成子类 可以。1.父类对象强转成子类 出错。3.子类强制转父类 可以。s可以用子类的所有方法。

cyizhiyuan的博客 2859

台积电技术研发实力

台积电技术研发实力 台积电在半导体行业的地位毋庸置疑。他们究竟有多强大,大部分读者了解得可能非常片面。从最新公布的2019年财报里,看看台积电的真正实力。 一、台积电在市场上的地位 根据公司财报,台积公司在先进制程技术、特殊制程技术,以及先进封装技术的发展上持续领先全球集成电路制造服务领域,2019年的市场占有率为52%。台积公司总体营收以地区划分(主要依据客户营运总部所在地),来自北美市场的营收占台积公司总体营收的60%、日本与中国大陆以外的亚太市场占9%、中国大陆市场占20%、欧洲、中东及非洲市场占6

吴建明wujianming_110117 1901

《大数据最全面试题-Offer直通车》目录

做好这些不用担心试用期不通过:程序员入职新公司如何快速上手项目本人遇到大数据面试题和参考答案(超过1万字精华版)大数据面试英文自我介绍参考(万字长文)大数据运维应用场景面试题汇总及参考答案(持续更新)万字数据仓库面试题及参考答案数据仓库数据质量监控和处理方法最佳实践数据仓库建模方法万字详解Doris的3种数据模型详解和数据仓库每一层的模型选用大数据面试临阵磨枪不知看什么?看这份心理就有底了-大数据常用技术栈常见面试100道题最全Hive面试题2024年(2万字详解)Elasticsearch 面试题及参考答

大模型大数据攻城狮的专栏 2641

Java 强制类型转换原理(父类转子类、子类转父类)

在Java中,对象的强制转换(也称为类型转换)是将一个对象的引用转换为另一个类的引用,前提是这两个类之间存在继承或实现关系。强制转换可能会导致运行时异常,因为在转换的过程中,如果对象的实际类型与转换的目标类型不兼容,就会抛出ClassCastException异常。

lucky_fd的博客 1万+

AMBA-CHI协议详解(十五)

Write transactions事务描述以及请求属性,cache line状态转换。

Crazzy_M的博客 650

instanceof及强制转换

instanceof (类型转换) 引用类型,判断一个对象是什么类型 public class Person { public void run(){ System.out.println("run"); } } public class Student extends Person{ } public class Teacher extends Person{ } public class Application { publ

2503_92462323的博客 444

AI智能体丨使用Coze一键生成中式养生视频,39 条作品涨粉 37.9 万!(附保姆级教程)

本文介绍如何利用扣子(Coze)AI智能体工作流高效制作中式养生短视频。该方案通过AI自动生成养生文案、古风插画素材、语音合成和视频剪辑,将传统制作流程从2-3小时缩短至1-2分钟。工作流包含文案创作、音频生成、图片素材制作和视频合成四大模块,采用大模型处理各环节内容,最终输出可直接导入剪映的草稿文件。特别适合希望快速批量制作文化氛围感强、兼具干货与视觉效果的养生内容创作者,效率提升近百倍。

李同学Lino的博客 3027

CARLA仿真:自定义地图与AI车辆行为编程

CARLA仿真:自定义地图与AI车辆行为编程 ,人工智能,计算机视觉,大模型,AI,本文围绕CARLA仿真平台,介绍了其基础功能与安装方法,详解地图系统,包括预设地图的加载切换及自定义地图的创建、导入与优化。还阐述了AI车辆的创建、属性设置、销毁,以及行为控制,如交通规则遵守、路径规划、复杂行为编程和行为树应用。同时涉及传感器与车辆感知、交通场景构建、自定义地图与AI行为结合应用、高级应用,以及常见问题解决方案和学习资源,为CARLA仿真应用提供全面指导。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 11万+

java子类和父类类型转换的问题

具体类型为子类的可以隐式转换为父类 Person person=new Chinese(); 但是父类只能调用父类的方法 并且可以再次强制转换为子类 Chinese chinese=(Chinese)person 具体类型为父类的强制转换为子类会报错

weixin_43532415的博客 427

ICML-2025《Learning from Sample Stability for Deep Clustering》

用于指导深度聚类模型的训练,从而提升模型对困难样本的学习能力,最终改善整体聚类性能。首先,利用K-means在原始样本(非增强)的表征上进行聚类,得到初始聚类分配。其目的是鼓励模型对同一稳定样本在连续epoch中产生相近的表征。输出差异大)会产生更大的损失值,从而引导模型优先优化这些困难样本。此损失借鉴了NT-Xent损失的思想,但将正样本对定义为。最后,通过对比学习优化聚类中心,将同一聚类在。为了获得更具代表性的聚类中心,论文提出。为了学习更鲁棒的表征,模型在在线网络。首先,论文定义了样本。

Christo的博客 828

Java强制转换问题

package jiCheng_duoTai; public class QZZH {//强制转换 //Java中强制转换成子类的原则:父亲型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用。 public static void main(String[] args) { Person pe = new Boy();//将父类的引用指向Boy,将开辟的Boy地址赋给pe Boy boy = (Boy) pe ;//强制转换:将pe强制转换为Boy类的对象 boy.eat()

hey,欢迎浏览我的博客,希望能给你提供帮助。 309

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java 对象的强制类型转换

----原文地址-----: https://www.cnblogs.com/chenssy/p/3393160.html 在java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换。 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要...

qq_40691051的博客 5877

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

父类为什么不能强转为子类

父类为什么不能强转为子类 网上解释如下:由于父类在创建对象时就分配了内存空间,子类的内存空间是一定大于父类的内存空间的,当父类强转为子类后就会发生内存空间不够时事情,因此不可强转。 于是我产生了一个疑惑,那子类不新增变量和方法,和父类需要的空间保持一致,就可以强转成功了? 事实上,是不可以的。 /** * 子类继承父类,不新增任何变量和方法 */ @Data public class SmsSendSon extends SmsSendFather{ } 所以,到底是什么拒绝了父类强转为子类? 是编

weixin_42245733的博客 1963

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java父类当子类_Java父类能够强转为子类吗

今天复习反射的时候,我凭印象写出了以下利用反射生成对象的代码:javatry {Object objectBigCar = Class.forName( new BigCar().getClass().getName() ).newInstance();BigCar bigCar2 = ( BigCar )objectBigCar;bigCar2.setLength( 200 );bigCar2...

weixin_42512723的博客 395

java 子类 父类 转换_Java子类与父类之间的类型转换

1.向上转换父类的引用变量指向子类变量时,子类对象向父类对象向上转换。从子类向父类的转换不需要什么限制,只需直接蒋子类实例赋值给父类变量即可,这也是Java中多态的实现机制。2.向下转换在父类变量调用子类特有的、不是从父类继承来的方法和变量时,需要父类变量向子类转换。为什么要向下转换?在继承关系中,有一些方法是不适合由父类定义并由子类继承并重写的,有些方法是子类特有的,不应该通过继承得到,且子类可...

weixin_39545017的博客 5584

java引用类型转换带来的多态

引用类型转换带来的多态 父类转子类 需要强制转换,可以使得对象获得子类的方法 父类 People public class People { public void fu(){ System.out.println("fu的函数"); } } 子类 Student public class Student extends People{ public void zi(){ System.

weixin_41998976的博客 164

5.1 父类和子类的类型转换总结

前提:父类和子类之间,严格遵循“is-a”的关系。例如,雇员和经理,经理是雇员,但雇员不一定是经理。     (一)把子类的对象,传递给父类的变量,很容易理解,直接赋值即可,不需要采用强制类型转换。(一个经理对象,当然可以属于雇员类)     (二)把父类对象,传递给子类变量,较难理解,必须采用强制类型转换的方式赋值。(一个雇员,不一定属于经理类)       简单例子如下所示:

小枯林的博客 1080

java中强制类型转换

在Java中,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的。     当我们用一个类型的构造器构造出一个对象时,这个对象的类型就已经确定的,也就说它的本质是不会再发生变化了。在Java中我们可以使用父类来引用它,这个时候我

qq724432055的专栏 3032

JAVA学习笔记(强制类型转换)

主要讨论的是非基本数据类型,即class类型之间的转换。我们知道,子类向父类的转换毫无疑问是可以顺利完成的(因为父类中的成员变量子类一定有)。但有时候为了使用多态性,需要将父类对象的句柄强制转换为子类的对象(强制造型),由于子类的成员可能在父类中没有,这时可能就会出现问题。

fatever的博客 461

Java 中的强制类型转换

在 Java 里,基本数据类型间的转换分为自动类型转换和强制类型转换。当把范围大的数据类型转换为范围小的数据类型时,就需要进行强制类型转换。// 把 double 类型强制转换为 int 类型System.out.println("double 值: " + doubleValue);System.out.println("转换后的 int 值: " + intValue);​// 把 long 类型强制转换为 int 类型。

2301_77451464的博客 1003

父类子类相互转化的内存关系

package com.fushuang.test; /** * Created by fushuang on 2016/7/29. */class Animal{ public int size=10;} class Dog extends Animal{ public String color="red"; public void say(){ Syst

fushuangdage的博客 1459
上一篇: 【java】String类和StringBuffer类常用操作
下一篇: 父类对象 到底能不能强转换为 子类对象
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值