对象的上转型和下转型 (instanceof关键字)
Posted aoligei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象的上转型和下转型 (instanceof关键字)相关的知识,希望对你有一定的参考价值。
1.对象的上转型,就是多态的一种写法
格式:父类名称 对象名 = new 子类名称();
Animal animal = new Cat();
含义:右侧创建一个子类对象,把它当作父类来使用
向上转型一定是安全的,从小范围到大范围; 猫是动物,动物不一定是猫
类似于:double num = 100
ps:对象一旦向上转型为父类,就无法调用子类特定内容
2.对象的下转型,其实就是还原的操作
格式:子类名称 对象名 = (子类名称)父类对象;
含义:将父类对象还原为本来的子类对象
Cat cat = (Cat)animal
类似于:int num = (int)10.0
ps:必须保证创建的时候就是猫,才能下转型成猫,否则会报错 类转换错误 ClassCastException
报错的情况类似于:int num = (int)10.5 //精度损失
下转型时,忘记原来子类是什么时
格式:对象 instanceof 类名称
会得到一个 boolean 值,判断前面对象能不能当作后面类型的实例
例子:
if (animal instanceof Dog) {
Dog dog = (Dog) animal;
dog.watchHouse();
}
if (animal instanceof Cat) {
Cat cat = (Cat) animal;
cat.catchMouse();
}
以上是关于对象的上转型和下转型 (instanceof关键字)的主要内容,如果未能解决你的问题,请参考以下文章