1
resposta

Dúvida: Possível erro na alternativa correta.

Olá, pessoal!

Preenchendo a tarefa https://cursos.alura.com.br/course/csharp-parte-3-heranca-interfaces-polimorfismo/task/39944 , verifiquei em uma das alternativas um texto com dupla interpretação. Vejam:

Alternativa B:

"A solução para o código seria remover as atribuições no construtor de ContaCorrente" - até aqui tudo bem - "e preencher o construtor da classe base com

public ContaCorrente(int numero, int agencia) : base(numero, agencia).

Isso não deveria ser o construtor da classe ContaCorrente? A classe base não seria a Conta?

1 resposta

Olá Khayan!

O que o código public ContaCorrente(int numero, int agencia) : base(numero, agencia) quer dizer é que o construtor da classe ContaCorrente receberá dois parâmetros e repassará para a classe base (Conta) e toda lógica ficará dentro da classe base.

Concentrando toda a regra de instanciação de objetos dentro da classe base, você pode focar apenas em regras independentes para cada classe filha.

Por exemplo, se você criar a classe ContaCorrentePremium, você poderia já liberar um limite de crédito sem precisar se preocupar como os valores do número da agência e da conta.

public ContaCorrentePremium
{
    private Double LimiteDeCredito { get; set; }

    public ContaCorrentePremium(int numero, int agencia, double limiteDeCredito) : base(numero, agencia)
    {
        this.LimiteDeCredito = limiteDeCredito;
    }
}

Com isso você se preocupa apenas com o que é pertinente a essa classe filha nova.

Espero ter ajudado!