У меня есть суперкласс с 2 переменными (int a
) (int b
), и у меня есть подкласс, который расширяет функциональные возможности суперкласса путем переопределения 2 методов суперкласса с улучшенными методами, которые теперь находятся в подклассе. Как часть моего подкласса у меня теперь есть новый int
(int c
), который является уникальным идентификатором (UUID).
Я понимаю, что равенство трудно поддерживать методом equals
Могу ли я переопределить методы equals
и hashCode
суперкласса, чтобы показать равенство И также сделать то же самое для методов equals
и hashCode
подкласса, основываясь на моей ситуации, описанной выше?
Я изначально переопределил методы equals
и hashCode
в суперклассе. Если это предполагается сделать для подкласса также из-за дополнительной переменной экземпляра (int c
) в подклассе. Я понимаю, что должен быть метод hashCode
, чтобы показать это, и я читаю, если haschCode
изменяется, то метод equals
подкласса должен измениться?
Я действительно запутался в том, что лучше делать.
Мне было интересно, могут ли мои методы суперкласса equals
и hashCode
показать отношения равенства? Разрешено ли в сочетании с моими переопределенными методами equals
и hashCode
суперкласса, что подкласс может показывать сравнение для int a
, int b
и int c
и hashCode
методов подкласса, обновленных, чтобы показать уникальный хэш-код для int
s a
, b
и c
?
Я думал сравнить мои int
s a
и b
в методе суперкласса equals
и обновить хеш-код для этих 2 переменных и int
s a
, b
и c
в методе equals
обновите хеш-код для этих трех переменных. Просто int c
в суперклассе уникален?
Очень благодарен за любые советы, поскольку я считаю, что игнорировать и не иметь дело с int c
в подклассе equals
и hashCode
методами может быть нет.
Заранее спасибо