概念:
向上转型 子—>父 又称:自动类型转换
向下转型 父—>子 又称:强制类型转换(需要加强制类型转换符)
两种类型之间必须有继承关系,不然不能通过编译
什么时候需要使用向下转型呢?
当调用的方法是子类型中特有的,在父类型当中不存在,必须进行向下转型。
怎么避免向下转型出现的classCastException呢?
使用instanceof运算符可以避免出现以上的异常。
instanceo运算符怎么用?
语法格式:(引用instanceof数据类型名)
以上运算符的执行结果类型是布尔类型,结果可能是true/false
if(a instanceof b)
true:a这个引用指向的对象是一个b类型
false:a这个引用指向的对象不是一个b类型
Java规范中要求:在进行强制类型转换之前,建议采用instanceof运算符进行判断,避免ClassCastException异常的发生。