В HotSpot можно выбрать один из 6 режимов генерации hashCode
В java hashCode - целочисленное представление объекта. Метод hashCode класса Object возвращает значение типа int. Этот метод имеет модификатор native, т.е. он написан не на java. (Как вычисляется hashCode)
При переопределении методов можно изменить тип возвращаемого значения, если тип является наследником типа из переопределяемого метода
При наследовании в java методы можно переопределять, т.е. у наследника реализовать свою версию метода. Для этого нужно у наследника создать метод с такой же сигнатурой. При этом возвращаемое значение, модификатор доступа и выбрасываемые исключения могут отличаться.