1、向上类型转换 ( 自动转换) 小类型 到 大类型
这种转换没有风险,即小杯子里的水倒入水壶里
2、向下类型转换 (强制转换) 大类型 到 小类型
这种转换存在风险,即水壶里的水倒入小杯子里,可能会有溢出
3、instanceof运算符,来解决引用对象的类型,避免类型转换的安全性问题
public class Animal {
public void eat(){
System.out.println(“动物具有吃的能力”);
}
}
public class Dog extends Animal{
}
public class Cat extends Animal{
}
public class Initail{
public static void main(String【】 args){
Dog dog = new Dog();
Animal dog2 = dog; //自动类型提升 没有风险
Dog dog2 = Animal; //这样存在危险 编译器不允许通过
Dog dog2 =(Dog) Animal;// 强制类型转换
}else{
System.out.println("无法进行类型转换成Dog类型");
if(animal instanceof Cat){ //如果animal里存在 Cat
Cat cat = (Cat)animal; //编译时 Cat类型 运行时Dog类型
}else{
System.out.println("无法进行类型转换成Cat类型");
}
}
结果:无法进行类型转换成Cat类型