引用类型的转换
上转型对象(自动转换)和下转型对象(强制转换)
向上转换是小类型向大类型转换,是没有风险的,例如Dog对象转换成Animal对象;
向下转换是大类型向小类型转换,是有风险的,例如Animal对象转换成Dog对象。‘
当强制类型转换时,编译器不会报错,因为这是程序员强制声明的,如果没有为这个小类型的对象开辟空间,在编译时会报错。因此这时就要用instanceof关键字来判断是否开辟了空间,可以进行强制转换。
代码如下:
Dog dog=new Dog();//声明子类对象,子类的引用指向子类对象
Animal anmial=dog;//自动转换,父类的引用指向子类对象,是没问题的
if(animal instanceof Dog){
Dog dog1=(Dog)anmail;//强制类型转换,向下类型转换
}else{
System.out.println("无法进行类型转换");
}