重寫equals方法的問題
運行到Dog other = (Dog) obj ;這里,老師說“運行到這里,顯然兩個對象的類型是相同的,那么我們把另一個對象再傳換成Dog類型”既然已經(jīng)是類型相同的,為什么還要轉(zhuǎn)換成Dog類型呢?
運行到Dog other = (Dog) obj ;這里,老師說“運行到這里,顯然兩個對象的類型是相同的,那么我們把另一個對象再傳換成Dog類型”既然已經(jīng)是類型相同的,為什么還要轉(zhuǎn)換成Dog類型呢?
2015-09-27
舉報
2015-09-29
if?(getClass()?!=?obj.getClass())
????????????return?false;
????????Dog?other?=?(Dog)?obj;
這句話,能執(zhí)行到Dog?other?=?(Dog)?obj;
就說明this.getClass()==obj.getClass,說明obj也是Dog類對象,只不過是用Object類的引用指向了這個對象,所以下面要把obj的類型給向下轉(zhuǎn)換 然后繼續(xù)下面的比較 來比較Dog類特有的內(nèi)容
2015-09-29
順便說下 我也很喜歡一拳超人 哈哈!
2015-09-29
沒看出來是哪里做了類型提升啊。。。還望指教~
2015-09-27
一開始時使用父類引用指向的子類對象,雖然是子類的對象但是在定義 時把子類對象做了類型提升,提升成了父類,當(dāng)你需要用到這個對象中的子類內(nèi)容時,就需要把類型給調(diào)回來