Bom dia a Todos ,
Fabio a resposta do Lucas está correta , acredito que o problema está no genérico .
o a descrição do método da CompareTo da inteface Comparable é o seguinte :
public int compareTo(T o);
quando não é passado nenhum genérico para comparable , você é obrigado sobrescrever o método passando como parâmetro um object .
@Override
public int compareTo(Object o) {
// TODO Auto-generated method stub
return 0;
}
e não será possivel passar conta como parametro .
Ao colocar o Genérico , ContaPoupança para a interface Comparable , a ao sobrescrever o método CompareTo , irá passar com argumento a ContaPoupanca .
@Override
public int compareTo(ContaPoupanca outra) {
return this.nome.compareTo(outra.nome);
}
fazendo assim a comparação certa com o nome da conta .
não sei se consegui ser claro na explicação, espero ter te ajudado a entender .
Bons Estudos