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

Alternativa D errada

Fiquei bem confuso com a alternativa D estar errada, e a B estar correta. sendo que a letra B diz que deveríamos "e preencher o construtor da classe base com: " public ContaCorrente(int numero, int agencia) : base(numero, agencia).

Alguém poderia esclarecer ?

2 respostas
solução!

Olá Thales,

A diferença entre as respostas está em remover as atribuições no construtor da classe ContaCorrente, ficando da seguinte forma:

public class ContaCorrente : Conta
{
    public ContaCorrente(int numero, int agencia) : base(numero, agencia)
    {
    }
}

Passando assim os argumentos numero e agencia para a classe base Conta, e utilizando suas propriedades.

Nota-se que os atributos da classe Conta, apesar de estarem definidos como public, estão definidos como private set, o que não permite que sejam alterados fora da clase Conta.

public int Numero { get; private set; }
public int Agencia { get; private set; }

também entendi que a resposta deveria ser alterar para ContaCorrente e não para Conta (base), senão, na classe base haveriam 2 construtores, um para a própria Conta e outro para a ContaCorrente, mas ambos na mesma classe e o segundo passando parametros como se fosse derivado de uma "outra" classe base, mas na verdade já estaria dentro da base.