引用变量的强制类型转换:
来源:互联网 发布:http dev.mysql.com 编辑:程序博客网 时间:2024/05/21 22:22
引用变量的强制类型转换:
编写java程序时,引用变量只能调用它编译时类型的方法,而不能调用它运行时类型的方法,即使它实际所引用的确实包含该方法。
如果需要这个引用变量调用它运行时类型的方法,则必须把它强制类型转换成运行时类型。强制类型转换需要借助于类型转换运算符。
(1)类型转换运算符是小括号,类型转换运算符的用法是:(type)variable,这种用法可以将variable变量转换成一个type类型的变量。
(2)除此之外,类型转换运算符可以将一个引用变量转换成另一个类型,但有以下需要注意:
1.基本雷类型转换只能在数值类型之间进行,数值类型包括整型,字符型和浮点型。数值类型和布尔类型之间不能进行类型转换。
2.(重点)引用类型之间的转换只能在具有继承关系的两个类型间进行,如果是两个没有任何继承关系的类型,则无法进行类型转换。
如果试图将一个父类实例转换成一个子类实例,则这个对象必须实际上是子类实例才行(即编译时类型为父类类型,而运行时是子类类型),否则将在运行时发生ClassCastException异常
——————————————————————————————————————————————————————————————————————
进行强制类型转换的示例程序:
public class Conversion{ public static void main(String[] args) { double d = 13.4; long l= (long)d; System.out.println(l); int in=5; //boolean b = (boolean)in; 试图将一个数值变量强制转换为一个布尔变量,将编译出错 Object obj ="hello"; //obi变量的编译时类型为Object,Object与String存在继承关系,可以强制类型转换 //而obi变量的实际类型是String,所以运行时也能通过 String objStr = (String)obj; System.out.println(obiStr); //定义一个objPri变量,编译时类型为Object,实际类型为Integer Object obiPri =new Integer(5); //objPri变量编译时类型为Object,运行时类型为Integer //Object与Integer存在继承关系,可以强制类型转换, //而objpri实际类型是Integer //所以下面代码将在运行时引发ClassCastException异常 String str =(String)objPri; }}
0 0
- 引用类型变量的强制转换
- 引用变量的强制转换类型
- 引用变量的强制类型转换:
- 引用变量的强制类型转换_instanceof
- 5.7.2 引用变量的强制类型转换
- 变量类型的强制转换
- 引用类型的强制类型转换
- java引用类型的强制类型转换
- java引用类型的强制类型转换
- java 多态/引用变量的强制类型转换?/静态的初始化块
- Java中super的限定作用和引用变量的强制类型转换
- PHP 变量类型的强制转换
- Python变量类型的强制转换
- 对于引用类型和强制类型转换的理解
- Java中引用类型变量的转换
- JAVA引用类型强制类型转换
- 强制的类型转换
- 强制类型的转换
- 组播简介
- java的多态
- R+ODPS
- Android Camera 系统架构源码分析
- ios8调用相机报警告: Snapshotting a view that has not been rendered results in an empty snapshot?
- 引用变量的强制类型转换:
- 数据结构-循环和递归比较(31)
- IMX6QDL Android5.0 Kernel3.10 无法挂载system文件系统
- php基础之错误处理
- Devexpress DropDownButton 用法
- CCF 201403-3 100分 我参考别人100分
- instnanceOf运算符
- 鼠标运动事件和鼠标事件适配器
- 使用Xcode7打包ipa文件出现提示错误