package?demo;
public?class?Main?{
public?static?void?main(String[]?args)?{
Object?circle1?=?new?Circle();
Object?circle2?=?new?Circle();
System.out.println(circle1.equals(circle2));
}
}
class?Circle{
double?radius;
public?boolean?equals(Circle?circle)?{
return?this.radius?==?circle.radius;
}
}輸出為false,就算輸錯(cuò)了也可以當(dāng)做方法重載啊,我用debug來看,根本就沒有進(jìn)入equals怎么回事?
3 回答
已采納

xixiyingyi
TA貢獻(xiàn)18條經(jīng)驗(yàn) 獲得超19個(gè)贊
hi,Java里面object的equals方法參數(shù)是(object obj)哦,你重寫的equals(xxxx),參數(shù)和父類object不一樣呢,所以其實(shí)你并沒有重寫equals方法,你只是在自定義類里面新增了一個(gè)看似很像重寫object的equals方法的方法。你在main方法里面調(diào)用的是object的equals方法,當(dāng)然不會(huì)進(jìn)去你自定義的'equals'方法里面了。這樣說你懂了嗎?
點(diǎn)擊展開后面3條
添加回答
舉報(bào)
0/150
提交
取消