黑马程序员技术交流社区
标题:
为什么equals这种签名方式是错的 求解释
[打印本页]
作者:
尤圣回
时间:
2012-9-23 17:16
标题:
为什么equals这种签名方式是错的 求解释
public boolean equals(Point other) {
return (this.getX() == other.getX() && this.getY() == other.getY());
}
作者:
黑马杨晨
时间:
2012-9-23 17:26
boolean equals(Object obj) ;
必需得是这个格式,你上面的格式是方法重载,不是覆盖!
作者:
王小闲7
时间:
2012-9-23 17:45
可能还需要重写hashCode()方法吧
作者:
郑世光
时间:
2012-9-23 18:02
要覆写一个方法时,必须要有相同的参数列表
你的参数是Point 类型,而Object中的参数是Object类型,显然是不同的。定义的这个方法就是以重载的方式存在了。因为此类还是会从Object类中
继承boolean equals(Object obj) 这个方法。
类型强制转换就可以解决问题了
public boolean equals(Object other) {
Point p=(Point ) other;
return (this.getX() == p.getX() && this.getY() == p.getY());
}
作者:
赵永康
时间:
2012-9-23 18:15
楼上正解 你写的就是equals方法的重载,并不是复写
该用人家标准的形式
public boolean equals(Object obj){//必须的代码}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2