引用数据类型之间的转换 [Java]
引用数据类型之间的转换
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]相关推荐
- java类型转换面试题_JavaSE:数据类型之间的转换(附常见面试题)
数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...
- java怎么改变数据类型_java数据类型之间的转换,是怎么回事啊? - 收获啦
1.数据类型的分类 2.比较数据类型之间的字节大小 1字节=8位 . 3.转换中的知识点 *java中整数类型默认的int类型:小数类型默认的double: *String的字符串转化为char类型时 ...
- java 数据类型转换的一场_Java数据类型之间的转换
java数据类型的转换一般分三种,分别是: (1). 简单数据类型之间的转换,在Java中整型.实型.字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)--int- ...
- java conversion_java 基本数据类型之间的转换(Conversion between Java basic data types).doc...
java 基本数据类型之间的转换(Conversion between Java basic data types) java 基本数据类型之间的转换(Conversion between Java ...
- java字符串与基本数据_java --字符串与基本数据类型之间的转换
public static void main(String[] args) { /** * 1.字符串与基本数据类型之间的转换 * 字符串-->基本数据类型,调用xx.parseXxx(Str ...
- 【java】字符串和基本数据类型之间的转换
字符串和基本数据类型之间的转换:程序的功能是比较两个数的大小 代码清单如下: package p1; import javax.swing.JOptionPane;public class Java_ ...
- golang 数据类型之间的转换
一.基本数据类型之间的转换 1.string到int int,err:=strconv.Atoi(string) 2.string到int64 int64, err := strconv.ParseI ...
- python数据类型转换原因_浅谈Python数据类型之间的转换
Python数据类型之间的转换 函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 compl ...
- python变量类型之间转换_Python常用数据类型之间的转换总结
函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) ...
最新文章
- MySQL-source报错1064
- GridView,Repeater分页控件:WebPager(开源)
- 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
- 【深度学习】短袖短裤识别算法冠军方案总结
- 使用SpringTask定时获取传感器设备信息并缓存到Redis
- 学python买什么书-关于 Python 的经典入门书籍有哪些?
- 企业项目开发--cookie(3)
- 【KnockoutJS】KnockoutJS 绑定列表数据。实现表头合并,列生成,图片上传等功能
- 域用户更改环境变更与关闭UAC
- Hello Qt——QtDBus快速入门
- Java 拾遗补阙 ----- 继承父类的成员变量与方法区别
- dataframe保存为txt_Python读写txt文本(示例说明)
- TrustedInstaller
- 基于web的木子日记个人博客网站的设计与实现
- 天基实业投资理财需了解的基础知识
- 为了让孩子入门编程,Scratch的设计者操碎了心!谈谈Scratch编程环境和语言中的设计理念
- sheng的学习笔记-内部类
- git clone时报错 Empty reply from server
- go tool pprof与trace的简单使用
- elasticsearch安装部署教程