在子类中调用 super.equals(obj)
和 super.hashCode()
是为了确保 equals()
和 hashCode()
方法在父类中正确实现。在 Java 中,equals()
方法用于比较两个对象是否相等,而 hashCode()
方法用于返回一个对象的哈希码。正确实现这两个方法对于对象的比较和哈希表的性能至关重要。
在子类中调用 super.equals(obj)
和 super.hashCode()
可以确保子类对象与父类对象之间的比较和哈希码计算是正确的。这对于面向对象编程(OOP)的设计原则——继承和多态——非常重要。
以下是在子类中调用 super.equals(obj)
和 super.hashCode()
的一种常见方法:
public class SubClass extends SuperClass {
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (this == obj) {
return true;
}
if (getClass() != obj.getClass()) {
return false;
}
SubClass other = (SubClass) obj;
return super.equals(other);
}
@Override
public int hashCode() {
return super.hashCode();
}
}
在这个示例中,SubClass
扩展了 SuperClass
,并覆盖了 equals()
和 hashCode()
方法。在 equals()
方法中,我们首先检查对象的引用是否相等,然后检查对象的类是否相同。在 hashCode()
方法中,我们返回父类的哈希码。这样,我们可以确保 SubClass
对象与父类对象之间的比较和哈希码计算是正确的。
领取专属 10元无门槛券
手把手带您无忧上云