博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
今天聊一聊Java引用类型的强制类型转换
阅读量:7098 次
发布时间:2019-06-28

本文共 708 字,大约阅读时间需要 2 分钟。

实际上基本类型也是存在强制类型转换的,这里简单提一下。概括来讲分为两种:

  1、自动类型转换,也叫隐式类型转换,即数据范围小的转换为数据范围大的,此时编译器自动完成类型转换,无需我们写代码

  2、强制类型转换,也叫显式类型转换,即数据范围大的转换为数据范围小的,此时数据会损失精度,强转也需要我们书写代码来实现,使用需谨慎

下面我们来看看,引用类型的强制类型转换:

  同样分两种:隐式和显式

  1、隐式强转,就是父类的引用指向子类的对象,例如 Father类和Child类,我们可以这样写:

    Father f = new Child();

    对于子类和父类我们可以理解为子类是继承了父类的所以功能比父类多

    通俗理解就是子类转父类,没毛病!

    需要注意的是Child对象在内存中类型依然是Child

  2、显式强转,显式强转会出现2种情况:

      ①父类的引用指向子类的对象

      Father f = new Child(); 

      此时Child c = (Child)f ; 父类转子类是可行的,可以这样理解:f 的引用本身就是指向child类的对象,所以把 f 强制转换成 Child是可以的

      ②父类的引用指向的是父类自己的对象:

      Father f = new Father();

      此时Child c  =  (Child)f ;父类转子类是不可行的,运行时会抛出ClassCastException异常,即类型不兼容

转载于:https://www.cnblogs.com/zwakeup/p/7420142.html

你可能感兴趣的文章
Python_Selenium学习笔记(2)-浏览器操作方法
查看>>
excel自定义函数添加和使用方法
查看>>
C# 压缩组件介绍与入门
查看>>
结对学习心得感想及创意照
查看>>
sug
查看>>
windows 环境变量
查看>>
Linux下模拟Http发送的Get和Post请求
查看>>
input checked取值
查看>>
内核参数
查看>>
android中dip、dp、px、sp和屏幕密度
查看>>
2018 Multi-University Training Contest 4
查看>>
流程控制引擎组件化
查看>>
数据库初识--从MySQL 出发
查看>>
5、Web Service-整合CXF
查看>>
c++最短路经典问题
查看>>
vxworks串口的初始化和读写
查看>>
C#-之属性(1)
查看>>
快速幂取模(当数很大时,相乘long long也会超出的解决办法)
查看>>
Drupal8开发教程:认识.info.yml文件
查看>>
面向对象约束常规写法
查看>>