天天看点

引用类型

引用类型转换:

1.向上类型转换(隐式/自动类型转换),是小类型到大类型的转换。

如:Dog dog=new Dog();Animal animal=dog;//正确,自动类型提升,向上类型转换

2.向下类型转换(强制类型转换),是大类型到小类型的转换(存在风险,溢出)

如:Dog dog1=(Dog)animal;//向下类型转换

3.instanceof运算符,来解决引用对象的类型,避免类型转换的安全性问题。如:

Dog dog=new Dog();

Animal animal=dog;

Cat cat=(Cat)animal;//编译时不会出错(按Cat类型进行编译),但运行时会报错,因为它开辟的是Dog类型的空间,而(无法将引用类型进行转换)无法将dog对象转换成Cat类型,并且此方法对程序的安全性有影响。此时应该利用instanceof和if语句结合使用,进行验证,以保证程序的安全性,如:

if(animal instanceof Cat){//判断animal类中是否包含Cat类型的元素,若包含则进行转换,instanceof返回值为布尔类型

Cat cat=(Cat)animal;}else{

System.out.println("无法进行类型转换");}

上一篇: 抽象类
下一篇: 多态

继续阅读