为了账号安全,请及时绑定邮箱和手机立即绑定

java中,什么情况下需要向上类型转换,什么情况下需要强制类型转换,如代码中的动物和狗的案例,请加以说明

java中,什么情况下需要向上类型转换,什么情况下需要强制类型转换,如代码中的动物和狗的案例,请加以说明

慕粉2332316918 2017-09-25 10:53:04
//前提,dog继承了animalDog dog = new Dog();Animal animal = dog;//向上类型转换if(animal instanceof Dog){     Dog dog2 = (Dog)animal;//强制类型转换}
查看完整描述

3 回答

?
洪镇海

TA贡献9条经验 获得超19个赞

看过几种设计模式之后,你就明白接口和抽象类的重要性了。。。

查看完整回答
反对 回复 2017-09-25
?
麦克白cat

TA贡献2条经验 获得超0个赞

Dog一定是Animal,但Animal不一定是Dog,然而你又非常确定这个Animal它就是一个Dog,这时就可以强制类型转换

查看完整回答
反对 回复 2017-09-25
?
堇延未七

TA贡献36条经验 获得超19个赞

动物是狗的父类,向上(由子类向父类)类型转换:狗肯定是动物,不管你强不强转都改变不了这个事实;强制类型转换:指定这个动物就是狗(不强转的话,动物有很多种,猫啊,兔子啊...)所以在满足条件的情况下,可以向下强制转换

查看完整回答
反对 回复 2017-09-25
?
拖鞋_

TA贡献453条经验 获得超223个赞

比如你还有个类 叫  cat

现在我想听 cat的 喵喵叫  你觉得应该怎么转(先转成动物在转成猫,转成猫的时候就有了喵喵叫)

结论就是需求驱动的你转成什么,为什么要转?因为我要听喵喵叫,这就是为什么

查看完整回答
反对 回复 2017-09-25
  • 3 回答
  • 0 关注
  • 2341 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信