我们在写java程序的时候,经常对我们的引用类型进行转换。
1.向上类型转换(隐式/自动类型转换),是小类型到大类型的转换 2.向下类型转换(强制类型转换),是大类型到小类型。 3.使用instanceof运算符,来解决引用对象的类型,避免类型转换的安全性问题
Dog dog =
new Dog();
Animal animal = dog;
Dog dog1 = animal;
那我们怎么来解决这个问题呢?
Dog dog1 =
(Dog)animal; // 强制转换
我们把这个就叫做“向下类型转换”或者叫“强制类型转换”。
Cat cat =
(Cat)animal;
/*
1.强制转换为Cat类型,编译器不会报错
2.运行的时候会出错,因为真正的开辟的内存空间上Dog类型的,程序运行会发现2个类型不匹配,所以报错
*/
可以利用instanceof来规避这个问题:
if(animal
instanceof Cat){
Cat cat = (Cat)animal;
}
转载请注明原文地址: https://ju.6miu.com/read-674513.html