处理继承时没有等于方法,也没有实例变量

时间:2018-04-19 18:08:42

标签: java inheritance equals instance-variables

这是我们在类中实现equals方法的方式。

以区域为实例变量的A类(商店):

@Override
public boolean equals(Object otherObject) {
    if (this == otherObject) {
        return true;
    }
    if (otherObject == null || getClass() != otherObject.getClass()) {
        return false;
    }

    Store otherStore = (Store) otherObject;

    return area == otherStore.area; 
}

B类(S​​toreToys)扩展了A类(Store)并且没有实例变量(处理继承)

我该怎么写这个类的equals方法?

1 个答案:

答案 0 :(得分:0)

如果您未在StoreToys中引入任何新字段,则可以使用instanceof撰写支票,以验证otherObject是否可以投放到Store。< / p>

@Override
public boolean equals(Object otherObject) {
  if (this == otherObject) {
    return true;
  }
  if (!(otherObject instanceof Store)) {
    return false;
  }
  Store otherStore = (Store) otherObject;
  return area == otherStore.area; 
}