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

Ajuda erro: method deposita(double) is already defined in class Conta

Estou compilando meu código do exercício 3 da aula 1 e estou obtendo o seguinte erro: method deposita(double) is already defined in class Conta

Segue meu código:

class Conta {
    protected double saldo;

    public double getSaldo() {
        return this.saldo;
    }

    public void deposita(double deposito) {
        this.saldo += deposito;
    }

    public void saca(double saque){
        this.saldo -= saque;
    }

    public void atualiza(double taxa){
        this.saldo += this.saldo * taxa;
    }

    class ContaCorrente extends Conta {
        public void atualiza (double taxa){
            this.saldo += this.saldo * taxa * 2;
        }
    }

    class ContaPoupanca extends Conta {
        public void atualiza (double taxa){
            this.saldo += this.saldo * taxa * 3;
        }
    }
        public void deposita(double deposito){
            this.saldo += deposito - 0.1;
        }

}
4 respostas
solução!

Oi Victor, tudo bem? Acho que o problema foi só um engano no jogo das chaves ai. Você acabou definindo duas classes dentro da classe conta e como uma delas tem um método com o mesmo nome da classe principal, isso confundi o compilador. Experimenta só mover as duas classes menores para fora das chaves da classe conta. Deixo o código aqui:

class Conta {
    protected double saldo;

    public double getSaldo() {
        return this.saldo;
    }

    public void deposita(double deposito) {
        this.saldo += deposito;
    }

    public void saca(double saque){
        this.saldo -= saque;
    }

    public void atualiza(double taxa){
        this.saldo += this.saldo * taxa;
    }
    public void deposita(double deposito){
            this.saldo += deposito - 0.1;
      }
}

    class ContaCorrente extends Conta {
        public void atualiza (double taxa){
            this.saldo += this.saldo * taxa * 2;
        }
    }

    class ContaPoupanca extends Conta {
        public void atualiza (double taxa){
            this.saldo += this.saldo * taxa * 3;
        }
    }

Não sou especialista. Mas acho que seus parênteses estão errados. Ta declarando classe dentro de classe?

Criei as classes ContaPoupanca e ContaCorrente dentro da classe Conta, quando na verdade deveriam estar fora delas.

Muito obrigado Wanderson!

Boa Victor, precisando, conta com a gente! bons estudos!