Olá, eu não entendi esse código
public Diretor(string cpf) : base(cpf)
{
}
oque significa essa base(cpf)?
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)
{
}
}