課程
/后端開發(fā)
/Java
/Java入門第二季 升級版
引用多態(tài)與類型轉(zhuǎn)換的區(qū)別
2016-05-13
源自:Java入門第二季 升級版 10-2
正在回答
代碼一: Animal?dog?=?new?Dog(); Animal?animal?=?dog; 代碼二 Animal?animal?=?new?Dog(); 代碼一與代碼二結(jié)果一樣,區(qū)別在于代碼一可以使用強(qiáng)轉(zhuǎn),代碼二用的JAVA的多態(tài)性
Animal obj2=new Dog(); 這其實也是向上轉(zhuǎn)型,Dog是Animal的子類,Animai是Dog的父類
這個跟數(shù)據(jù)類型轉(zhuǎn)換差不多、int 轉(zhuǎn) double 可以、但 double 轉(zhuǎn) int 是不可以直接轉(zhuǎn)換的、需要強(qiáng)制轉(zhuǎn)換、理解偶讀是一樣的、
我也是初學(xué)者,三天前才開始看教程,我說下我的理解,你可以參考一下,不保證正確
多態(tài)就是指一個對象的多種狀態(tài),如,一條狗,你可以說它是一只動物,也可以說它是一只生物,狗、動物、生物都可以形容它,表示狗有以上三種(描敘)形態(tài)
再如,柏樹,也可以說它是一種植物,一種生物,也是數(shù)的三種形態(tài)
向上級轉(zhuǎn)換:一只狗可以說它是一只動物,一只生物
向下級轉(zhuǎn)換:拿狗舉列,生物 花狗=new 狗();定義了一只狗,但是它的類型是生物,雖然他是用狗()來實例化的,現(xiàn)在問題出來了,向下級轉(zhuǎn)換是有風(fēng)險的,你需要判斷它到底是 什么類里的才可以轉(zhuǎn)換為那個類,我們實例化的花狗(定義類型是生物)可以轉(zhuǎn)換為動物、狗類型,但是不能轉(zhuǎn)換為植物、柏樹類型
舉報
課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會Java面向?qū)ο缶幊痰膴W妙
4 回答為什么要引用父類指向子類對象呢,這樣做與直接引用子類指向子類對象有什么區(qū)別?也就是Animal obj2 = new Dog();和Dog obj2= new Dog();的區(qū)別是什么?
1 回答Animal animal = dog;//向下類型轉(zhuǎn)換 自動類型轉(zhuǎn)換 ???
5 回答為什么Animal animal = dog 是向上類型轉(zhuǎn)換?
3 回答Animal animal=new Dog()和Animal animal=dog有區(qū)別嗎?
6 回答Animal obj2 = new Dog();
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-07-27
2016-05-24
Animal obj2=new Dog(); 這其實也是向上轉(zhuǎn)型,Dog是Animal的子類,Animai是Dog的父類
2016-05-18
這個跟數(shù)據(jù)類型轉(zhuǎn)換差不多、int 轉(zhuǎn) double 可以、但 double 轉(zhuǎn) int 是不可以直接轉(zhuǎn)換的、需要強(qiáng)制轉(zhuǎn)換、理解偶讀是一樣的、
2016-05-13
我也是初學(xué)者,三天前才開始看教程,我說下我的理解,你可以參考一下,不保證正確
多態(tài)就是指一個對象的多種狀態(tài),如,一條狗,你可以說它是一只動物,也可以說它是一只生物,狗、動物、生物都可以形容它,表示狗有以上三種(描敘)形態(tài)
再如,柏樹,也可以說它是一種植物,一種生物,也是數(shù)的三種形態(tài)
向上級轉(zhuǎn)換:一只狗可以說它是一只動物,一只生物
向下級轉(zhuǎn)換:拿狗舉列,生物 花狗=new 狗();定義了一只狗,但是它的類型是生物,雖然他是用狗()來實例化的,現(xiàn)在問題出來了,向下級轉(zhuǎn)換是有風(fēng)險的,你需要判斷它到底是 什么類里的才可以轉(zhuǎn)換為那個類,我們實例化的花狗(定義類型是生物)可以轉(zhuǎn)換為動物、狗類型,但是不能轉(zhuǎn)換為植物、柏樹類型