¿Por qué no debo usar iguales con herencia?

Cuando leo un libro de Java, el autor ha dicho que, al diseñar una clase, normalmente no es seguro usarequals() con herencia. Por ejemplo:

public final class Date {
    public boolean equals(Object o) {
         // some code here
    }
}

En la clase anterior, deberíamos ponerfinal, por lo que otra clase no puede heredar de esto. Y mi pregunta es, ¿por qué no es seguro cuando se permite que otra clase herede de esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta