码迷,mamicode.com
首页 > 其他好文 > 详细

对象的上转型和下转型 (instanceof关键字)

时间:2020-02-27 21:05:17      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:必须   操作   nbsp   bsp   范围   OLE   except   use   多态   

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关键字)

标签:必须   操作   nbsp   bsp   范围   OLE   except   use   多态   

原文地址:https://www.cnblogs.com/aoligei/p/12374127.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!