对象的上转型和下转型 (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关键字)的主要内容,如果未能解决你的问题,请参考以下文章

向下转型中instanceof介绍

java基础_对象转型

Java中对象的上转型对象

Java上转型和下转型

2.25 Java基础总结 ①多态②向上向下转型③instanceof

多态向上转型向下转型instanceof 运算符