Praticamente quello che dice il titolo. Sto chiedendo con Java in mente; tuttavia, non sto limitando la premessa a java. Sarebbe considerato controintuitivo che un oggetto clonato non passi la funzione di uguale?
Dipende. Per la maggior parte delle classi, il valore dell'oggetto determina l'uguaglianza, quindi un oggetto clonato deve essere uguale all'originale. Ci sono classi in cui l'identità dell'oggetto determina l'uguaglianza, cioè gli oggetti sono uguali se e solo se sono lo stesso oggetto. In questi casi, un oggetto clonato è un oggetto diverso e non dovrebbe essere paragonato.
Si suppone che un oggetto clonato abbia le stesse caratteristiche dell'originale, quindi in generale dovrebbe essere equal
ad esso. L'unico criterio più strong sarebbe identità e la maggior parte dei linguaggi di programmazione ha già un operatore ==
per quello. Pertanto, non avrebbe senso avere un secondo operatore equals
più debole e quindi definire un clone come non soddisfacente.
Leggi altre domande sui tag object-oriented object-oriented-design