Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Devo implementar o comparable na classe abstrata Conta?

Implementei a interface Comparable nas classes ContaPoupança e ContaCorrente. Devo mesmo fazer isso? O eclispse acusou erro, então retirei.

4 respostas

Fala Geovane, tudo bem ?

A ideia aqui é que a comparação leva em conta dados genéricos, que tanto a poupança como a corrente possuem (numero e agencia, por exemplo). Sendo assim é adequado fazer com que nossa classe abstrata Conta implemente a interface e tenha seu método compareTo implementado. As duas classes filhas vão tirar proveito dessa implementação base presente em Conta, e ambas serão consideradas (mesmo que indiretamente) Comparable.

Mas não que seja "errado" implementar nas classes mais especialistas. Se o critério de comparação mudasse por exemplo, ou se algum tipo de Conta não tivesse o comportamento de ser comparável a outras, seria melhor a implementação estar presente nos tipos mais específicos.

Espero ter ajudado. Abraço!

Mas quando faço a implementação na classe Conta, o eclipse acusa erro nas classes filhas. Nelas o comparable já foi implementado. O que devo fazer?

Tiro o cabeçalho nas classes filhas?

Faço o método compareTo abstrato na classe Conta?

solução!

Opa,

Faça com que a classe Conta implements Comparable<Conta> e implemente de fato o método na classe Conta, não deixe como abstrato, coloque de fato a lógica de comparação. Assim as filhas não precisam nem ter implements nem a sobrescrita do método, já que a classe mãe já se encarrega dessa responsabilidade.

Abraço!

Certo, valeu!