課程
/后端開發(fā)
/Java
/Java入門第二季 升級版
感覺怪怪的
2015-06-17
源自:Java入門第二季 升級版 9-9
正在回答
這是需要的,有些obj需要轉(zhuǎn)換類型的
lqg111
初級學習號 提問者
不可以省略.原因如下:
這里是重寫equals方法的吧.方法聲明如下
public?boolean?equals(Object?obj){}
這個方法中的參數(shù)列表里只有一個Object類引用數(shù)據(jù)類型的變量obj,obj可以保存Object對象和Object類子類對象的引用或者說地址值,這里用到了多態(tài).多態(tài)的成員變量訪問特點:編譯時看父類,運行時還是看父類.由這個特點知道這里的obj只能訪問父類的成員變量,不能訪問傳入的子類的特有的屬性(成員變量),如果要訪問子類對象的成員變量必須通過強制類型轉(zhuǎn)換(向下轉(zhuǎn)型)將變量obj轉(zhuǎn)換為子類引用數(shù)據(jù)類型,根據(jù)你的例子,這里需要
Dog?other?=?(Dog)obj;//向下轉(zhuǎn)型
通過這個操作后,我們得到Dog類型的引用數(shù)據(jù)類型的變量other,它可以訪問Dog類中定義的成員變量.
總結(jié)一下,由于多態(tài)成員訪問特點導(dǎo)致obj不能直接訪問子類特有的成員變量,因此用向下轉(zhuǎn)型將obj變量強轉(zhuǎn)為子類類型,然后才可以直接訪問子類特有的成員變量.
Kiritomas
我也想了下,可能是這個原因。B extends A,但B和A的屬性(非屬性值)一樣,此時
this.getClass==obj.getClass()相等,但此時需要強制類型轉(zhuǎn)換
Dog d=(Dog)obj?
舉報
課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會Java面向?qū)ο缶幊痰膴W妙
1 回答Dog d = (Dog) obj是什么意思?
1 回答Dog other=(Dog)obj??
3 回答一定要 Dog other = (Dog)obj;
3 回答Dog othr = (Dog) obj有什么用
2 回答eclipse生成的equals方法中Dog other = (Dog)obj疑問;
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2015-06-18
這是需要的,有些obj需要轉(zhuǎn)換類型的
2016-10-23
不可以省略.原因如下:
這里是重寫equals方法的吧.方法聲明如下
這個方法中的參數(shù)列表里只有一個Object類引用數(shù)據(jù)類型的變量obj,obj可以保存Object對象和Object類子類對象的引用或者說地址值,這里用到了多態(tài).多態(tài)的成員變量訪問特點:編譯時看父類,運行時還是看父類.由這個特點知道這里的obj只能訪問父類的成員變量,不能訪問傳入的子類的特有的屬性(成員變量),如果要訪問子類對象的成員變量必須通過強制類型轉(zhuǎn)換(向下轉(zhuǎn)型)將變量obj轉(zhuǎn)換為子類引用數(shù)據(jù)類型,根據(jù)你的例子,這里需要
通過這個操作后,我們得到Dog類型的引用數(shù)據(jù)類型的變量other,它可以訪問Dog類中定義的成員變量.
總結(jié)一下,由于多態(tài)成員訪問特點導(dǎo)致obj不能直接訪問子類特有的成員變量,因此用向下轉(zhuǎn)型將obj變量強轉(zhuǎn)為子類類型,然后才可以直接訪問子類特有的成員變量.
2015-12-05
我也想了下,可能是這個原因。B extends A,但B和A的屬性(非屬性值)一樣,此時
this.getClass==obj.getClass()相等,但此時需要強制類型轉(zhuǎn)換
Dog d=(Dog)obj?