当前位置: 首页 > news >正文

向下转型和向上转型(易理解)

向上转型:父类引用指向子类对象

 定义A B C D 四个类,分级继承

对象 a 的编译类型是A,运行类型是B,A是B的父类,父类的引用 a 指向的是B这个子类的对象,因为new的是B这个类,创建的也就是B这个类的对象,这就是向上转型

 我还可以这样,将a指向C ,D类的对象,也是向上转型,只要运行类型是编译类型的子类就可以

需要注意的是:引用 a 的编译类型(此时是A),是不能改变的,编译类型在定义引用时就已经确定了,就像是人的亲生父亲,是不能改变的,一生下来就确定了,除非向下转型,而运行类型就像是义父,可以改变;

向下转型:父类对象(编译类型)转成子类对象

向下转型有点类似于数据类型的强制类型转换

 将a 的编译类型强制转换为B类型,并用一个引用aa接收

需要注意: 

1.向下转型不能低于初始定义的运行类型

 在这里也就是括号里的类不能低于B类,否则运行时会报错

2.编译类型不能低于运行类型

这样

 

或者是这样

 

 都是错的

3.括号里的类不能高于初始运行类型类

 虽然不会报错,但是此时aa的运行类型任然是C

 4.最低的向下转型

 

http://www.lryc.cn/news/45261.html

相关文章:

  • 华为OD机试用JS实现 -【机智的外卖员】(2023-Q2 押题)
  • 同态加密:一个基于多方计算的CKKS方案
  • 最小生成数
  • 【模板】树状数组
  • 网站都变成灰色了,怎么实现的?
  • NeRF详解
  • Java之静态代码块和静态类、静态导入
  • Python3 File isatty() 、os.chflags()方法
  • 【SH_CO_TMT_PACKAGE保留60天数据和增加索引】
  • 2022蓝桥杯省赛——数位排序
  • 弥散磁共振成像在神经科学中的应用
  • 多进程(python)
  • 利用Kali工具进行信息收集(35)
  • 《程序员面试金典(第6版)》 面试题 08.11. 硬币(动态规划,组合问题,C++)
  • 实体商家做抖音运营如何做矩阵?
  • java 双列集合Map 万字详解
  • 【数据结构】二叉树<遍历>
  • linux查看硬件信息
  • 吐血整理,互联网大厂最常见的 1120 道 Java 面试题(带答案)整理
  • RabbitMQ如何避免消息丢失
  • 做算法题的正确姿势(不断更新)
  • p85 CTF夺旗-JAVA考点反编译XXE反序列化
  • FastJson——JSO字符串与对象的相互转化
  • 《程序员面试金典(第6版)》面试题 08.08. 有重复字符串的排列组合(回溯算法,全排列问题)C++
  • k8s API限流——server级别整体限流和客户端限流
  • 在华为做了三年软件测试被裁了,我该怎么办
  • Spring cloud 限流的多种方式
  • Linux命令·top
  • springmvc之系列文章
  • Matlab实现深度学习(附上完整仿真源码)