重寫的equals函數(shù)里面有問題,大神求解??!
為什么傳遞的是Object類,我們比較的不是一個(gè)具體的它的子類嘛。
public boolean equals(Object obj) {
if (this == obj)//這條意思是本身的類也是Object類,且地址相同?
return true;
if (obj == null)
return false;
if (!(obj instanceof Course))//有了這個(gè)IF第一條if有啥用呢,只要這一個(gè)不就好了,只要他倆不是同一個(gè)類型就是False。
return false;
Course other = (Course) obj;//前面不是已經(jīng)判斷了這倆個(gè)類型相等,為什么還要強(qiáng)制轉(zhuǎn)換
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
2017-07-14
這樣寫比較通用,寫父類,比較一切子類都沒問題,如果只寫String類,那么其他類不是不能比較了么