类型转换 自动&强制

2019-05-17  本文已影响0人  御都

一 向上转型由系统自动完成

  1. 基本数据类型中的数值型可以自动向上转型,详情参考https://www.jianshu.com/p/d98b05bea9d5中的类型提升。
  2. 将子类对象赋值给一个父类引用变量,就是向上转型,由系统自动完成。
    二 向下转型,强制类型转换
    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{
    
}
上一篇 下一篇

猜你喜欢

热点阅读