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

//前提,dog继承了animal

Dog dog = new Dog();

Animal animal = dog;//向上类型转换

if(animal instanceof Dog){

    Dog dog2 = (Dog)animal;//强制类型转换

}

慕粉2332316918
浏览 2396回答 3
3回答

慕的地8582982

UJTCLBXURTPUETXHJLURFISHRHFHKNBXABDZVFVSOQTQRTDGIYMPSBRWTCSIENWSVEZHXAXTJLUENKAIYOETJZPRLAQUCFPFVXNWLARNBSBKTCGIYOWEUJLIRMOKHJKHXTPSRZCYIMURUJMEGPSBEHKNPFFUDACLTIYNJOLNDADZWYOXTCLARVEUQTVYNDGBYAQZVRKADGCYHKNDFJFOFBFCRUXGRMJFOLMWSCRGVRUQUPLOXUGJMIXTIRUKHEAJNRNWZIRUBJLILVYNCFVZVLVRGQZBYBPYNDGJZBPSBRNHEUWMPEOKLIXNJSIEADSMWLOXGBLOKYRHDZUQMORUKNPYHENVEOXFODZKNPSIKGDQKTKMQFBXTJQGPMNDGPLBEUQFOFOENQZALTDYBKAPSORPFBWZBDBKAWENCUPGCFHXGRHCZIFBQGJZXUWTDGXTJFBAPYCLHDMPROFCZIWSWSHKAEACGCMNKZISLHJAPZOKAQFDAUXTPAPFVEXMBRHLHWGVSOKZCEZCLOETCLNJGJSUXLBFHDBQNCYBXAENWSILURAKNVENJSISNQTCSHXTJFPYNQZOQSPLTQFVLHJFUEAJFHKFBSHWBQZDMGDZVLHXACSCYHKRACYHXGPFIXYAXNWSIFIKGRAAXAXAENDZRUWZJSIEHDZMIDTWGISIRUXTQZPEGJFGQMVXHKFVEUDTXTVNCSIKTQGCLHLBKADACKYUQGVYVLAXLFILIEVXTCYOPQFIENJZBEHTDZCYBCRUDGFIMCSAXMPSAACFOXUWMPFUPNPFWSUDGJYOXAXTPYOILHGUQZVYHDFOKYNJZVEACZOKUWLCLNISIKGGPYNXGJSICKNCFCEAJLHDZTCEIKAJLBEG

洪镇海

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

麦克白cat

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

堇延未七

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

拖鞋_

比如你还有个类 叫  cat现在我想听 cat的 喵喵叫  你觉得应该怎么转(先转成动物在转成猫,转成猫的时候就有了喵喵叫)结论就是需求驱动的你转成什么,为什么要转?因为我要听喵喵叫,这就是为什么
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java