public boolean equals(Object obj) {
if (obj instanceof Point) {
    Point pt = (Point)obj;
    return (x == pt.x) && (y == pt.y);
}
return super.equals(obj);
    }在point中有 equals这一方法,上边是该方法的源代码,“return super.equals(obj)”这句看不懂,super调用父类的equals方法,再重新比较?还请达人们不吝赐教,详解一下!

解决方案 »

  1.   

    public boolean equals(Object obj) {
    if (obj instanceof Point) {                  //如果传入的obj是Point类型
        Point pt = (Point)obj;                   //将obj转赋给局部变量pt(为了安全)
        return (x == pt.x) && (y == pt.y);       //判断这两个x,y和新传入的坐标是否相等,如果相等则返回真,否则返回假
    }
    return super.equals(obj);                    //如果obj不是Point 类型的,则直接交给父类进行处理
        }