java 中的类型转换分为基本类型转换和引用类型转换
基本类型
自动转换:把取值范围小的类型,转换为取值范围大的数据类型,例如从int转型到long,系统自动就读取了
强制转换: byte-short-int-long-float-double 由高精度转低精度
例如:long a=999999;
int b=(int)a;
引用类型:(父类转换为子类需要强制类型转换)
编译器在编译时只会检查类型之间是否存在继承关系,有则通过;而在运行时就会检查它的真实类型,是则通过,否则抛出ClassCastException异常(类型转换异常)。 所以在继承中,子类可以自动转型为父类,但是父类强制转换为子类时只有当引用类型真正的身份为子类时才会强制转换成功,否则失败。
注意***
Object obj=new person();
Print(obj); 正确
Object obj=new object();
Print(obj);错误 (与子类没有关联)