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

Aula 6 exercício 6

Olá , Fiquei em dúvida de como devo alterar o método deposita pois ele é abstrato, segue minha classe Conta

package conta;

public abstract class Conta {
    protected double saldo;

    double getSaldo (){
        return this.saldo;
    }
    abstract void deposita (double valor);
    void saca(double valor) {
        this.saldo -= valor;
    }
    abstract void atualiza(double taxa);
    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }
}

Devo alterar cada classe filho que implementa deposita ou o método deposita() não deve ser mais abstrato?

Desde já agradeço

3 respostas

Oi Alvaro, tudo bem ?

Cara cada classe que vá ser uma Conta, será obrigada a implementar esse método.

Então o código ficaria dessa forma ?

package conta;

public abstract class Conta {
    protected double saldo;

    double getSaldo (){
        return this.saldo;
    }
    abstract void deposita (double valor) throws IllegalArgumentException;
    void saca(double valor) {
        this.saldo -= valor;
    }
    abstract void atualiza(double taxa);
    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }
}
package conta;

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

    @Override
    void deposita(double valor) {
        if(valor > 0) {
            this.saldo += valor;            
        }else {
            throw new IllegalArgumentException("Valor inválido");
        }
    }

    @Override
    public double calculaTributos() {
        return this.getSaldo() * 0.01;
    }

}
solução!

Sua implementação ficou bem bacana :D