2
respostas

Duvida no Override

Prezados, boa tarde.

Compreendi perfeitamente a ideia do Override na class ContaPoupança de sobrescrever o método na class que extends a mãe (super).

A minha dúvida ficou na seguinte questão, pq o Override respeita a condição (if) criada na classe mãe de realizar o saque somente se existir o valor em conta, sendo que essa condição não foi incluída na subscrita criada na classe filha (ContaPoupança).

--- Método classe mãe --- public boolean saca(double valor) { if (this.saldo >= valor) { this.saldo -= valor; return true; } else { return false; } }

--- método classe filha ---

@Override
public boolean saca(double valor) {
    double valorTaxa = valor + 0.2;
    return super.saca(valorTaxa);
2 respostas

Nesse caso, o método saca da filha, depois de definir o valorTaxa chama, em seu retorno, o método saca da mãe pela palavra reservada super que a referencia passando o valorTaxa.

O respeito ao if ocorre porque o método da mãe também é executado quando foi feita a chamada super.saca(valorTaxa).

Boa tarde Alan!

Muito boa a sua pergunta e você vai ver que a resposta é simples!

Repara que nessa linha do seu código

return super.saca(valorTaxa);

está sendo chamado o método saca da classe mãe e dentro desse método há essa verificação com o if:

boolean saca(double valor){
        if(this.saldo >= valor){
            this.saldo-=valor;
            return true;
        }
        return false;
    }

Espero ter ajudado, abração e bons estudos!