- 向上类型转换(隐式/自动类型转换)—— 小类型到大类型的转换
- 向下类型转换(强制类型转换)—— 是大类型到小类型的转换
instance of运算符,避免类型转换的安全性问题
Dog dog=new Dog();
Animal animal=dog;//自动类型提升,向上类型转换
Dog dog2=(Dog)animal;//强制向下类型转换
Cat cat=(Cat)animal;//编译时会报错,因为我们运行的时候是Dog类型(第一行)
修改:
if(animal instanceof Cat){ //如果对象animal是Cat类型
Cat cat=(Cat)animal;}
else{
System.out.println("无法进行类型转换");}