1、常量的类型转换
常量的类型转换分为自动转换和强制转换。
自动转换:位数低的数据类型自动向位数高的数据类型进行转换:byte→short→int→long→float→double。
特别的 char→int char可以直接赋值给Int型变量,而int此时的数值为char储存的字符的ASCLL码值
在数值计算时,低位变量和高位变量一起计算时,低位会自动转换为高类,规则如下:
操作数1类型 | 操作数2类型 | 转换后的类型 |
byte、short、char | int | int |
byte、short、char、int | long | long |
byte、short、char、int、long | float | float |
byte、short、char、int、long、float | double | double |
强制转换:为了防止数据的缺失,位数高的常量不能直接赋给位数低的常量,需要我们加入强制转换符
例如 int →char
int a=45;
char b=(char)a;
char类型也可以直接赋值为整数,但不能超出编码的范围。
2、对象的转换
首先要声明的是,类之间的转换必须要有继承关系。
分为上转型和下转型。
上转型
上转型是父类引用子类,例如
Father a=new Son();
下转型
下转型的时候,往下转型的对象必须是已经上转型后的对象。例:
Father a=new Son();
a=(Son)a;
这时候a就可以调用子类的方法了。但是这样看来似乎多次一举?我们想使用子类的方法那直接实例化子类的对象不就好了么。实则不然,下转型在使用泛型的工程中可以得到应用,具体可以参考别的作者的文章,链接如下:
https://blog.csdn.net/xyh269/article/details/52231944