Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Try Catch no Cast

Ao Receber um "Object" na função "equals()", entendo que ficamos expostos a ClassCastException sendo que podemos receber objetos incapazes de ser "Castados"

Deveria eu, ao implementar algo do gênero, fazer o seguinte código?

public boolean equals(Object ref) {

        Conta c;
        try {
            c = (Conta) ref;
        } catch (ClassCastException e) {
            // Garante que o programa não trave e que oustras class não filhas de conta já retornem false
            return false; 
        }
        // Garante que conta poupança não seja tratada como corrente
        if (this.getClass() == c.getClass()) {
            if (this.getAgencia() == c.getAgencia() && this.getNumero() == c.getNumero()) {
                return true;
            }
        }
        return false;
1 resposta
solução!

Oi Rodrigo

Um jeito mais simples é já retornar false se os getClass não forem iguais:

    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;