Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Eu não consegui entender como funciona a função base do ex 6.

No exemplo que estamos usando,

base.Atualiza(2*taxa)

Se quisermos fazer a atualização da variável de entrada, teremos que colocar o valor que vai substituir o valos dentro do parêntesis, é isso? Por exemplo, se eu quiser mudar a taxa para um valor fixo (embora não seja uma boa idéia) posso mudar para:

base.Atualizar(3,1415)

É isso?

Agradeço desde já

1 resposta
solução!

Olá Leandro,

a ideia do base é você invocar o comportamento da classe mãe. No exemplo da aula:

class Conta
{
    private double Saldo { get; protected set; }
    public virtual void Atualiza(double taxa)
    {
        this.Saldo += this.Saldo * taxa;
    }
}
class ContaCorrente : Conta
{
    public override void Atualiza(double taxa)
    {
        base.Atualiza(2 * taxa);
    }
}

o base.Atualiza(2 * taxa) da ContaCorrente invoca o comportamento Atualiza da Conta, só que dobrando a taxa antes de passar como parâmetro. Seria a mesma coisa que fazer no Atualiza da ContaCorrente o seguinte código this.Saldo += this.Saldo * (2 * taxa)

Se você fizer o Atualiza com uma taxa fixa na ContaCorrente:

class ContaCorrente : Conta
{
    public override void Atualiza(double taxa)
    {
        base.Atualiza(3.1415);
    }
}

Como você está chamando o Atualiza da Conta, seria a mesma coisa que fazer

class ContaCorrente : Conta
{
    public override void Atualiza(double taxa)
    {
        this.Saldo += this.Saldo * 3.1415;
    }
}

Só que neste cenário o parâmetro taxa deixaria de fazer sentido na ContaCorrente.