, что кажется неправильным.
public boolean equals(Object obj)
{
Frog.getClass().getHeight(); // you arent assigning this to anything, and class probably
// doesn't have a getHeightMethod()
HeightOfFrog height = (HeightOfFrog) obj; // obj should be an EOHoverFrog; you should
// return false above this if obj is null or the
// wrong class
return (this.getPosition() == frog.getPosition()); // what is frog? It is not defined
// in your example
// you are not comparing heights anywhere.
}
Хороший способ реализовать метод equals:
1) Убедитесь, что другой объект передан, obj
в вашемрегистр, не нуль и правильный класс (или классы).В вашем случае, могут ли EOHoverFrog
и HoverFrog
экземпляры быть равными?
2) проводить сравнения, например,
// при условии, что высота и положение находятся на базовом уровне
var isHeightEqual = this.getHeight() == ((HoverFrog)obj).getHeight();
var isPositionEqual = this.getPosition() == ((HoverFrog)obj).getPosition();
3) теперь вы в состоянии проверить равенство
return isHeightEqual && isPositionEqual;