Aparece este erro na minha IDE: The interface Comparable cannot be implemented more than once with different arguments: Comparable and Comparable
e no método compareTo pede para remover a annotation @Override.
Classe ContaPupanca
public class ContaPoupanca extends Conta implements Comparable<ContaPoupanca> {    
    @Override
    public int compareTo(ContaPoupanca outra) {
        return this.getNumero() - outra.getNumero();
    }
}Só lembrando que reaproveitei a classe Conta de outros cursos, el pode parecer meio torta rsrs, mas funciona... Classe Conta:
public class Conta implements Comparable<Conta>{
    private double saldo;
    private int agencia;
    protected int numero;
    private Cliente titular;
    private static int total = 0;
    public Conta(int agencia, int numero) {
        Conta.total++;
        System.out.println("O total de contas é " + Conta.total);
        this.agencia = agencia;
        this.numero = numero;
        this.saldo = 100;
        System.out.println("Estou criando uma conta " + this.numero);
    }
    public Conta() {
    }
    public Conta(double valor) {
        this.saldo += valor;
    }
    public void deposita(double valor) {
        this.saldo = this.saldo + valor;
    }
    public boolean saca(double valor) {
        if (this.saldo >= valor) {
            this.saldo -= valor;
            return true;
        } else {
            return false;
        }
    }
    public boolean transfere(double valor, Conta destino) {
        if (this.saca(valor)) {
            destino.deposita(valor);
            return true;
        } else {
            return false;
        }
    }
    public double getSaldo() {
        return this.saldo;
    }
    public int getNumero() {
        return this.numero;
    }
    public void setNumero(int numero) {
        if (numero <= 0) {
            System.out.println("Nao pode valor menor igual a 0");
            return;
        }
        this.numero = numero;
    }
    public int getAgencia() {
        return this.agencia;
    }
    public void setAgencia(int agencia) {
        if (agencia <= 0) {
            System.out.println("Nao pode valor menor igual a 0");
            return;
        }
        this.agencia = agencia;
    }
    public void setTitular(Cliente titular) {
        this.titular = titular;
    }
    public Cliente getTitular() {
        return this.titular;
    }
    public static int getTotal() {
        return Conta.total;
    }
    @Override
    public String toString() {
        return "Conta com saldo " + this.saldo;
    }
    // @Override
    // public boolean equals(Object obj) {
    // Conta outra = (Conta) obj;
    // return this.numero == outra.numero && this.titular.equals(outra.titular);
    // }
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        long temp;
        temp = Double.doubleToLongBits(saldo);
        result = prime * result + (int) (temp ^ (temp >>> 32));
        return result;
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Conta other = (Conta) obj;
        if (Double.doubleToLongBits(saldo) != Double.doubleToLongBits(other.saldo))
            return false;
        return true;
    }
    @Override
    public int compareTo(Conta outra) {
        if(this.saldo < outra.saldo) return -1;
        if(this.saldo > outra.saldo) return 1;
        return 0;
    }
} 
            