Leggendo inutili dispense di ingegneria del software, mi sono imbattuto in una questione poco chiara riguardo la ridefinizione di equals.

Infatti si dice che:

1. due oggetti immutabili sono equals se e solo se hanno lo stesso stato astratto.
-->Quindi dovrei ridefinire la nativa equals e controllare "personalmente" lo stato dell'oggetto.

Quello che non capisco è la motivazione:
MOTIVO: "due oggetti immutabili non possono essere distinti tramite
mutazioni; inoltre gli observer della classe permettono solo di distinguere
gli oggetti se hanno un diverso stato astratto (altrimenti le osservazioni non
danno differenza)"

2. due oggetti mutabili sono equals se e solo se sono lo stesso oggetto...
allora non ci deve essere nessuna ridefinizione.
MOTIVOerche' i due oggetti sono attraverso mutazioni...

Le due motivazioni non mi sono chiare...
Sapreste darmi una mano?