【Java基础】向上转型和向下转型
1.基本数据类型和引用数据类型转换比较
(1)基本数据类型转换
① 自动类型转换:小->大
long g = 20;
double d = 12.0f;
② 强制类型转换:大->小
float f = (float)12.0;
int a = (int)1200L;
(2)引用类型转换
① 子类->父类:自动进行(多态)
American a1 = new American();
Person p1 = a1;
//或写为
Person p1 = new American();
② 父类->子类:强制类型转换
在转换前可以先使用x对象 instanceof A类
判断对象类型
Person person = new Person();
American a3 = (American)person;
③ 没有继承关系的引用类型间的转换是非法的(编译错误)
2.类型转换异常
ClassCastException的异常
Object objPri = new Integer(5);
// 下面代码运行时引发ClassCastException异常
String str = (String) objPri;