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

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

重寫equals方法后執行結果不對

che和NSX的color,我都賦值為白色啊,結果應該為same啊。代碼如下:

package com.benz;


public class IntialinCar {

public static void main(String[] args) {

Car che = new Car();

che.color = "baise";

// che.engine = 4;

// che.speed = 100;

Honda NSX = new Honda();

NSX.color = "baise";

// NSX.engine = 4;

// NSX.speed = 100;

NSX.run();

//NSX.cheJiaHao(4);

Honda bentian = new Honda();

//bentian.cv();

System.out.println(bentian);

NSX.color = "baise";

bentian.color = "c";

if(che.equals(NSX)){

System.out.println("same");

}else{

System.out.println("no.");

}

}

}


正在回答

3 回答

你這只是比較了 兩個引用的指向地址,當然是不同的

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

你注意下視頻中老師用的是父類Dog創建的兩個對象比較,而你一個是父類創建對象,一個是子類創建的對象,這時,重寫equals方法是無效(我也不知道為什么),返回的還是不同。而用無論你進不進行方法重寫,if((che.color).equals(NSX.color))都可以達到你的目的,返回相同

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

if(che.equals(NSX))要改成if((che.color).equals(NSX.color))。沒改前,如果if((che.color).equals(NSX.color))是比較兩個color的內存地址,方法重寫后比較的是它們的值。而對color的方法重寫與if(che.equals(NSX)無關,它們比較的還是che和NSX的內存地址。

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

fenkapian 提問者

但是我看慕課老師視頻里的例子,equals方法里就沒有比較屬性值啊,直接比較對象,然后程序就比較對象的屬性值
2016-03-19 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

重寫equals方法后執行結果不對

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

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

幫助反饋 APP下載

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

公眾號

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