第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

若this.getClass==obj.getClass()成立,那么Dog d=(Dog)obj 可以省略吧。

感覺怪怪的

正在回答

3 回答

這是需要的,有些obj需要轉(zhuǎn)換類型的

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

lqg111

類對象不就關(guān)注類的屬性和類型嗎?
2015-07-27 回復(fù) 有任何疑惑可以回復(fù)我~
#2

初級學習號 提問者

非常感謝!
2015-10-21 回復(fù) 有任何疑惑可以回復(fù)我~

不可以省略.原因如下:

這里是重寫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)為子類類型,然后才可以直接訪問子類特有的成員變量.


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Kiritomas

other 這個變量可以直接拿來用的是么????
2017-02-04 回復(fù) 有任何疑惑可以回復(fù)我~

我也想了下,可能是這個原因。B extends A,但B和A的屬性(非屬性值)一樣,此時

this.getClass==obj.getClass()相等,但此時需要強制類型轉(zhuǎn)換

Dog d=(Dog)obj?


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531103    人
  • 解答問題       6280    個

課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會Java面向?qū)ο缶幊痰膴W妙

進入課程

若this.getClass==obj.getClass()成立,那么Dog d=(Dog)obj 可以省略吧。

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號