1 回答

TA貢獻(xiàn)8條經(jīng)驗(yàn) 獲得超9個(gè)贊
這樣可能拋異常ClassCastException 類型轉(zhuǎn)換異常
強(qiáng)轉(zhuǎn)前應(yīng)該判斷一下obj對(duì)象是不是Animal的類型的
public boolean equals(Object obj) {//括號(hào)里是創(chuàng)建了一個(gè)Object類型的引用? 相當(dāng)于
//?Object obj = 傳入的參數(shù) // 自動(dòng)類型提升 即父類引用指向子類對(duì)象 Object是所有類的父類
if(obj==null)
return false;
// 如果objj對(duì)象是Animal類型的
if(obj instanceof Animal)
????Animal temp=(Animal)obj; ?// 將obj強(qiáng)轉(zhuǎn)成Animal類型 向下轉(zhuǎn)型?
????//因?yàn)檫@里要調(diào)用Animal類中的特有方法, 即getName(),getMonth(),
????//?Object中無此方法,為了保證編譯通過,只能將obj強(qiáng)轉(zhuǎn)成Animal類型 向下轉(zhuǎn)型?
if(this.getName().equals(temp.getName())&&( this.getMonth()==temp.getMonth()));
return true;
else
return false;
添加回答
舉報(bào)