Olá, eu não entendi esse código
public Diretor(string cpf) : base(cpf)
{
}
oque significa essa base(cpf)?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, eu não entendi esse código
public Diretor(string cpf) : base(cpf)
{
}
oque significa essa base(cpf)?
É 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
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)
{
}
}