IMOOC_intanceof
2015-09-12 21:53
225 查看
引用类型的转换
上转型对象(自动转换)和下转型对象(强制转换)
向上转换是小类型向大类型转换,是没有风险的,例如Dog对象转换成Animal对象;
向下转换是大类型向小类型转换,是有风险的,例如Animal对象转换成Dog对象。‘
当强制类型转换时,编译器不会报错,因为这是程序员强制声明的,如果没有为这个小类型的对象开辟空间,在编译时会报错。因此这时就要用instanceof关键字来判断是否开辟了空间,可以进行强制转换。
代码如下:
Dog dog=new Dog();//声明子类对象,子类的引用指向子类对象
Animal anmial=dog;//自动转换,父类的引用指向子类对象,是没问题的
if(animal instanceof Dog){
Dog dog1=(Dog)anmail;//强制类型转换,向下类型转换
}else{
System.out.println("无法进行类型转换");
}
上转型对象(自动转换)和下转型对象(强制转换)
向上转换是小类型向大类型转换,是没有风险的,例如Dog对象转换成Animal对象;
向下转换是大类型向小类型转换,是有风险的,例如Animal对象转换成Dog对象。‘
当强制类型转换时,编译器不会报错,因为这是程序员强制声明的,如果没有为这个小类型的对象开辟空间,在编译时会报错。因此这时就要用instanceof关键字来判断是否开辟了空间,可以进行强制转换。
代码如下:
Dog dog=new Dog();//声明子类对象,子类的引用指向子类对象
Animal anmial=dog;//自动转换,父类的引用指向子类对象,是没问题的
if(animal instanceof Dog){
Dog dog1=(Dog)anmail;//强制类型转换,向下类型转换
}else{
System.out.println("无法进行类型转换");
}
相关文章推荐
- 查找(一)史上最简单清晰的红黑树讲解
- java web学习心得与总结(三)——javaBean技术
- MySQL几种方法的数据库备份
- Activity概述
- hadoop三种安装模式
- Hadoop/spark安装实战(系列篇4) Hadoop MapReduce词频统计之小试牛刀
- 求绝对值
- 在Eclipse下编译Keil MDK工程
- word快捷键
- 杭州电子科技大学acm--2018
- 总结一些性能测试的做法
- The available repos for opensuse13.2
- 绝对定位中的坑坑
- MSVC 报错 unable to use inline in declaration get error C2054
- C++ 笔记
- 以太网PHY是什么?
- C++ 注释规范
- PAT(B) Basic level 1045 解题报告
- 关于C++代码中的#pragma预处理指令
- URAL 1022 Genealogical Tree (DFS)