亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

重寫equals方法的問題

運行到Dog other = (Dog) obj ;這里,老師說“運行到這里,顯然兩個對象的類型是相同的,那么我們把另一個對象再傳換成Dog類型”既然已經是類型相同的,為什么還要轉換成Dog類型呢?

正在回答

4 回答

if?(getClass()?!=?obj.getClass())

????????????return?false;

????????Dog?other?=?(Dog)?obj;


這句話,能執行到Dog?other?=?(Dog)?obj;

就說明this.getClass()==obj.getClass,說明obj也是Dog類對象,只不過是用Object類的引用指向了這個對象,所以下面要把obj的類型給向下轉換 然后繼續下面的比較 來比較Dog類特有的內容

1 回復 有任何疑惑可以回復我~
#1

JustV 提問者

一擊の男!謝謝啦!
2015-10-02 回復 有任何疑惑可以回復我~

順便說下 我也很喜歡一拳超人 哈哈!

2 回復 有任何疑惑可以回復我~

沒看出來是哪里做了類型提升啊。。。還望指教~

@Override
	public?boolean?equals(Object?obj)?{
		if?(this?==?obj)
			return?true;
		if?(obj?==?null)
			return?false;
		if?(getClass()?!=?obj.getClass())
			return?false;
		Dog?other?=?(Dog)?obj;
		if?(age?!=?other.age)
			return?false;
		return?true;
	}


1 回復 有任何疑惑可以回復我~

一開始時使用父類引用指向的子類對象,雖然是子類的對象但是在定義 時把子類對象做了類型提升,提升成了父類,當你需要用到這個對象中的子類內容時,就需要把類型給調回來

1 回復 有任何疑惑可以回復我~
#1

JustV 提問者

沒看出來哪里做了類型提升。。。還望指教
2015-09-29 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

重寫equals方法的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號