一 向上转型由系统自动完成
- 基本数据类型中的数值型可以自动向上转型,详情参考https://www.jianshu.com/p/d98b05bea9d5中的类型提升。
- 将子类对象赋值给一个父类引用变量,就是向上转型,由系统自动完成。
二 向下转型,强制类型转换
1 基本数据类型中强制类型转化的操作只存在于各个数值类型中,逆向。
2 引用数据类型中强制类型转换操作的前提是,父类引用变量的运行态为子类,可以将该父类引用变量强制转换为子类。
2.1 如果2个类之间没有继承关系,是不能进行强制类型转换的。
2.2 父类的运行时类型就是父类本身,强制转化为子类,运行时报错ClassCastExceotion。
public class Test {
public static void main(String[] args) {
Father f = new Father();
Father f2 = new Son();
Son s = (Son)f;//java.lang.ClassCastException
Son s2 = (Son)f2;
}
}
class Father{
}
class Son extends Father{
}
网友评论