Oi Leonardo, tudo bem?
Essa é uma boa pergunta. O motivo para não precisarmos sobrescrevermos o método equals(), assim como fazemos com o compare(), se deve ao fato do java.lang.Object
, ou simplesmente Object
, já estar sobrescrevendo o equals() assim que um novo objeto é criado. Lembrando que Object é superclasse de todas as outras classes, por padrão qualquer objeto é capaz de fazer uso de seus métodos!
Inclusive se você criar um objeto e checar todos os métodos disponíveis, você encontra o equals(), e no final da mesma linha a palavra Object, indicando que foi a superclasse Object quem implementou/sobrescreveu esse equals().
Espero ter ajudado, qualquer dúvida é só avisar!
Bons estudos!!