JAVA中的类型转换
来源:互联网 发布:linux如何退出vi 编辑:程序博客网 时间:2024/05/22 05:33
JAVA平台中,一个对象的类型可以看做是其自身所属类的类型,也可以看做是其超类的类型.在这两种类型之间会涉及到类型转换.主要分两种:隐式对象类型转换和强制对象类型转换.
1.隐式对象类型转换:
在可以使用超类的地方,都可以用子类替代.比如说,中国人肯定是地球人.如下面示例:
AutoCar car = new Car();
这里引用变量car是AutoCar类型,又是一个Car类型.凡是能调用父类的地方,都可以使用子类.这里Car类是AutoCar的父类.引用变量car是子类AutoCar类型,但是其出生于Car类.实际后续的使用引用变量car中是AutoCar类型而不是Car类型.这就是隐式转换--是子类的.
2.强制对象类型转换:
一个学生,可能是中学生,但并不一定是中学生.例如下面的代码编译报错:
AutoCar car = new Car();Car myCar = car;
编译出错原因分析如下:
引用变量car是AutoCar类型,引用变量myCar是Car类型.把子类类型(AutoCar)的引用变量car赋值给父类类型(Car)的引用变量myCar.因为子类的信息量必定多于或等于父类.这样会导致信息的丢失.因此编译器报错.就像C里面把int类型变量赋值给char类型变量一样,有可能导致其数据错误.这种情况和C处理方式类似,要强制类型转换.
修正后的代码如下:
AutoCar car = new Car();Car myCar = (Car)car;
3.instanceof运算符
instanceof运算符性质和"=="类似,是一种测试手段,这里主要是测试类类型是否合适.如下:
if(car instanceof Car){ Car myCar = (Car)car;}
判断如果引用变量car 是否是类Car的一个实例.car是Car类的子类AutoCar的一个实例,虽然其也是Car的一个实例.因此是成立的.
- java中的类型转换
- java中的类型转换
- java中的类型转换
- Java中的类型转换
- java中的类型转换
- Java中的类型转换
- java中的类型转换
- java中的类型转换
- JAVA中的类型转换
- java中的类型转换
- java中的类型转换
- Java中的类型转换
- java中的类型转换
- java中的类型转换
- Java中的类型转换
- JAVA中的类型转换
- 闲话Java中的类型转换
- Java中的强制类型转换
- CvPoint
- Linux 远程链接windows
- HTC A310E获得root权限详细教程(保证你会)
- CvPoint2D32f
- dom4j的基本操作
- JAVA中的类型转换
- Function
- HDU 1002 A + B Problem II
- C#中DataGridView绑定了DataTable后,通过代码修改DataGridView中的数据,总有一行(被修改过并被用户选中的行集合中索引为0的行)不能被UpDate回数据库的问题和解决办法
- 有些错误就只因没有全局观
- CvPoint3D32f
- MapObject shape数据操作 一
- CvSize
- 今天注册了博客