bsuart Asked:2020-03-14 18:09:52 +0000 UTC2020-03-14 18:09:52 +0000 UTC 2020-03-14 18:09:52 +0000 UTC 重写 Java 抽象类中的 toString()、hashCode()、equals() 772 方法toString(), hashCode(),是否应该equals()在抽象类中被重写,这有意义吗? java 3 个回答 Voted Best Answer Mikhail Vaysman 2020-03-14T18:17:47Z2020-03-14T18:17:47Z 如果您打算使用它们,例如在后代中,可以在抽象类中覆盖它们。 Евгений Тупиков 2020-03-14T18:30:07Z2020-03-14T18:30:07Z 如果您不使用这些方法,则不必覆盖它们,否则您应该覆盖它们。例如,调用一个toString()对象的方法将返回如下内容:objectName@46e05420。这种方法没有什么意义。因此,此方法被重写并在它的帮助下显示有关对象的必要(或完整)信息。方法hashCode()和 也是一样equals(),它们的标准实现可能不适合解决任何任务。因此,这是有道理的! user240291 2020-03-14T18:56:59Z2020-03-14T18:56:59Z 当抽象类和哈希码中有一些数据并从中确定时,这是有意义的,这些数据equals将分别在子重写方法中调用hashCode(),equals(): super.hashCode()和super.equals(), 给定祖先(抽象类)的字段,计算散列码并检查子类中的相等性。
如果您打算使用它们,例如在后代中,可以在抽象类中覆盖它们。
如果您不使用这些方法,则不必覆盖它们,否则您应该覆盖它们。例如,调用一个
toString()对象的方法将返回如下内容:objectName@46e05420。这种方法没有什么意义。因此,此方法被重写并在它的帮助下显示有关对象的必要(或完整)信息。方法hashCode()和 也是一样equals(),它们的标准实现可能不适合解决任何任务。因此,这是有道理的!当抽象类和哈希码中有一些数据并从中确定时,这是有意义的,这些数据
equals将分别在子重写方法中调用hashCode(),equals():super.hashCode()和super.equals(),给定祖先(抽象类)的字段,计算散列码并检查子类中的相等性。