HashCode от Object из дочернего класса

Иногда у нас возникает достаточно большая иерархия объектов. Часто в этой иерархии нам приходится переопределять стандартную реализацию hashCode() от класса Object на свою. Для чего нужен hashCode() и его связь с equals(Object other) можно прочесть в моей прошлой статье, посвящённой этим методам. Но что делать, если в последующем нам нужно в одном из дочерних классов вызвать первоначальную реализацию hashCode()?

Если мы вызовем super.hashCode(), то мы получим вызов родительского метода hashCode(). А если мы наследовались не от Object, а от другого класса, где уже написали свою реализацию hashCode()? Как пробраться через всё дерево наследования к корневому предку Object и вызвать его метод?

В Java это уже невозможно, но, к счастью, существует метод, который позволяет выполнить метод hashCode() от Object для любого объекта:

В метод System.identityHashCode(Object x) можно передать экземпляр любого объекта, и он вернёт то же самое значение, которое бы вернул метод hashCode() от класса Object.

Рекомендую ознакомиться с моим учебником Java, думаю, он вам понравится.


Поделиться:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован.