java - 实例方法 equals()

标签 java methods equals

我需要创建一个名为 EOHoverFrog 的 HoverFrog 子类。 EOHoverFrog 实例与 HoverFrog 实例的不同之处在于,如果 EOHoverFrog 的两个实例的位置和高度相同,则它们被视为相等,无论它们的颜色如何。

为此,我需要为 EOHoverFrog 编写一个实例方法 equals() 以覆盖从 Object 继承的 equals() 方法。该方法应该接受任何类的参数。如果参数的类与接收者的类不同,该方法应该简单地返回 false,否则它应该测试接收者和参数的相等性。

public boolean equals(Object obj)
{
   Frog.getClass().getHeight();
   HeightOfFrog height = (HeightOfFrog) obj;
   return (this.getPosition() == frog.getPosition());
  }

请你告诉我我是否正确?

最佳答案

public boolean equals(Object obj) {
    // my first (incorrect) attempt, read Carlos Heuberger's comment below
    // if (!(obj instanceof EOHoverFrog))
    //    return false;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    // now we know obj is EOHoverFrog and non-null
    // here check the equality for the position and height and return
    // false if you have any differences, otherwise return true
}

关于java - 实例方法 equals(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7270466/

相关文章:

java - 在派生类对象上调用父类函数(Java)

java - Spring一对多关系抛出异常: org. springframework.http.converter.HttpMessageNotWritableException

java - 函数有点像静态方法吗?

c++ - 有智能指针和原始指针的通用方法吗?

java - 为什么这个类有两个构造函数?

java - 覆盖 cglib 代理上的 equals

java - mockito 验证参数顺序

java - Spring JMS 模板 - 并发调用

java - 在 Effective Java 示例中使用原子引用

java - "Contains"ArrayList 与 HashSet 的实现