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

Dúvida em relação a herança

Olá, eu não entendi esse código

public Diretor(string cpf) : base(cpf)
        {

        }

oque significa essa base(cpf)?

2 respostas

É apenas uma palavra-chave usada para acessa o construtor da classe Base de dentro da classe derivada. :)

https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/base

solução!

Olá, Henrique. Tudo bom?

A resposta do Steimntz está corretíssima! Vou apenas completar com um exemplo:

Escrevemos a classe Funcionario onde já temos o construtor que recebe o argumento cpf:

public Funcionario(string cpf)
{
    // lógica do que fazer com o argumento cpf
}

Desta forma, sempre que criarmos um Funcionario seremos obrigados a preencher este argumento. Mas, e quando temos uma classe derivada?

public class Diretor : Funcionario
{
    public Diretor()
    {
    }
}

O construtor da classe derivada sempre chama o construtor da classe base. Como poderemos criar um objeto de Diretor se ele deriva de Funcionario e este último depende do argumento no construtor?

Não rola. A classe derivada Diretor precisa informar este argumento para a classe base. Com isso, usamos a palavra reservada base quando definimos um construtor da classe derivada:

public class Diretor : Funcionario
{
    public Diretor() : base("cpf qualquer")
    {
    }
}

Mas, não podemos forçar sempre o valor "cpf qualquer" então podemos passar um argumento também!

public class Diretor : Funcionario
{
    public Diretor(string cpfDoDiretor) : base(cpfDoDiretor)
    {
    }
}