Por que não devo usar igual com herança?

Quando eu leio um livro de Java, o autor disse que, ao projetar uma classe, normalmente não é seguro usarequals() com herança. Por exemplo:

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

Na classe acima, devemos colocarfinal, então outra classe não pode herdar disso. E a minha pergunta é: por que não é seguro permitir que outra classe herde disso?

questionAnswers(2)

yourAnswerToTheQuestion