我需要创建一个名为 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/