gpt4 book ai didi

java - 在子类中调用 super.equals 和 super.hashCode?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:43:53 24 4
gpt4 key购买 nike

如果我实现 equals()hashCode()在父类和子类中,是否有必要调用 super.equals()equals()在子类中,例如

public boolean equals(Object obj) {

if (obj.getClass() != ChildClass.class) {
return false;
}

return super.equals() && this.var == ((ChildClass) obj).var;

}

我假设父类不是 Object 并且给出了 equals 和 hashCode 的正确定义。

最佳答案

不,这不是必需的,而且可能是错误的。事实上,您覆盖 equal 的部分原因是因为 super.equals 没有给出正确的行为(对吗?)。

或者换句话说,如果 super.equals 给出了正确的行为,您可能不需要麻烦重写它。

但是如果您要覆盖 equals,那么是的,您也需要覆盖 hashCode

关于java - 在子类中调用 super.equals 和 super.hashCode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10253727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com