引用数据类型之间的转换

1.引用数据类型转换和基本数据类型转换一样也是分为两种:

第一种:自动类型转换

第二种:强制类型转换

自动类型转换:自动类型转换主要是指从小范围到大范围的转换

强制类型转换:主要是指从大范围到小范围的转换(也就是父类到子类的转换)

  • 如果是小转大则不能使用强制类型转换,使用了就会编译出错

2.引用类型的转换必须要是发生在自己和自己或者父子类之间(也可以是爷孙关系,也就是必须要有继承关系,如果没有继承关系的话就会报错)

3.强制类型转换当中如果转换到的类型时引用指向的子类类型,但不是引用指向的真正的子类的类型的话,则编译通过,运行阶段会出现类型转换异常

eg:Person p=new Worker();

​ Student s=(Student)p;

这里编译的通过的(因为Student类是Person类的子类),但是运行时会发生引用类型的类型转换异常(因为这里的new对象是Worker类,而转换的目标是Student类)

  • 运行阶段出错要比在编译阶段出错更让人难受

4.为了避免发生类型转换异常,我们可以使用instanceof关键字进行判断

​ 具体格式:

​ if(引用变量名 instanceof 数据类型){

​ 转换

​ }else{

​ 不能转换

​ }

  • instanceof关键字:

​ 使用方式: 引用变量名 instanceof 数据类型

​ instanceof关键字可以判断左边的引用变量指向的对象是否为后面的类型,如果是则返回true,如果不是则返回false

一般用于强制类型转换前面的if条件语句中,避免发生类型转换异常

引用数据类型之间的转换 [Java]相关推荐

  1. java类型转换面试题_JavaSE:数据类型之间的转换(附常见面试题)

    数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...

  2. java怎么改变数据类型_java数据类型之间的转换,是怎么回事啊? - 收获啦

    1.数据类型的分类 2.比较数据类型之间的字节大小 1字节=8位 . 3.转换中的知识点 *java中整数类型默认的int类型:小数类型默认的double: *String的字符串转化为char类型时 ...

  3. java 数据类型转换的一场_Java数据类型之间的转换

    java数据类型的转换一般分三种,分别是: (1). 简单数据类型之间的转换,在Java中整型.实型.字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)--int- ...

  4. java conversion_java 基本数据类型之间的转换(Conversion between Java basic data types).doc...

    java 基本数据类型之间的转换(Conversion between Java basic data types) java 基本数据类型之间的转换(Conversion between Java ...

  5. java字符串与基本数据_java --字符串与基本数据类型之间的转换

    public static void main(String[] args) { /** * 1.字符串与基本数据类型之间的转换 * 字符串-->基本数据类型,调用xx.parseXxx(Str ...

  6. 【java】字符串和基本数据类型之间的转换

    字符串和基本数据类型之间的转换:程序的功能是比较两个数的大小 代码清单如下: package p1; import javax.swing.JOptionPane;public class Java_ ...

  7. golang 数据类型之间的转换

    一.基本数据类型之间的转换 1.string到int int,err:=strconv.Atoi(string) 2.string到int64 int64, err := strconv.ParseI ...

  8. python数据类型转换原因_浅谈Python数据类型之间的转换

    Python数据类型之间的转换 函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 compl ...

  9. python变量类型之间转换_Python常用数据类型之间的转换总结

    函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) ...

最新文章

  1. MySQL-source报错1064
  2. GridView,Repeater分页控件:WebPager(开源)
  3. 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
  4. 【深度学习】短袖短裤识别算法冠军方案总结
  5. 使用SpringTask定时获取传感器设备信息并缓存到Redis
  6. 学python买什么书-关于 Python 的经典入门书籍有哪些?
  7. 企业项目开发--cookie(3)
  8. 【KnockoutJS】KnockoutJS 绑定列表数据。实现表头合并,列生成,图片上传等功能
  9. 域用户更改环境变更与关闭UAC
  10. Hello Qt——QtDBus快速入门
  11. Java 拾遗补阙 ----- 继承父类的成员变量与方法区别
  12. dataframe保存为txt_Python读写txt文本(示例说明)
  13. TrustedInstaller
  14. 基于web的木子日记个人博客网站的设计与实现
  15. 天基实业投资理财需了解的基础知识
  16. 为了让孩子入门编程,Scratch的设计者操碎了心!谈谈Scratch编程环境和语言中的设计理念
  17. sheng的学习笔记-内部类
  18. git clone时报错 Empty reply from server
  19. go tool pprof与trace的简单使用
  20. elasticsearch安装部署教程

热门文章

  1. C语言加油站程序,c语言加油站1——编辑器、编译器和集成开发环境
  2. Mixly使用两块UNO使用Arduino Json通信(Arduino Json库用V6版本)
  3. 基于QGraphicsView实现绘画曲线注意点
  4. 【博主个人在uni-app里使用的基本标签样式】
  5. DXF笔记:插入块及嵌套插入块
  6. 手游ROI及LTV预估方法
  7. ubuntu 怎样查看隐藏文件
  8. VMware Workstation装CentOS7虚拟机NAT方式上网
  9. 【每日早报】2019/11/19
  10. 联想Y470在ubuntu中开启双显卡切换