1
resposta

Dúvida no construtor na classe base

Boa tarde! Fiquei com uma dúvida referente à implementação do construtor na classe base: Caso a classe derivada 'Diretor' não implemente o construtor conforme exemplificado (Diretor(string cpf) : base(cpf)), o código apresentará erro de compilação ou a classe 'Diretor' utilizará o construtor definido em 'Funcionário'?

1 resposta

Olá Hugo!

Quando a classe base implementa apenas construtores parametrizados, a classe que a implementar será obrigada a fornecer esses parâmetros.

Veja um exemplo:

class Pessoa
{
    public Pessoa(string cpf)
    {    }
}

class Diretor : Pessoa
{
    public Diretor(string cpf) : base(cpf)
    {    }
}

Agora, se a classe base tivesse algum construtor padrão, ou seja, sem parâmetros, isso seria possível:

class Pessoa
{
    public Pessoa()
    {    }
    public Pessoa(string cpf)
    {    }
}

class Diretor : Pessoa
{    }

Nesse segundo exemplo, caso a classe Diretor implementasse um construtor e se quisesse chamar o construtor padrão da classe Pessoa, seria preciso fazer isso:

class Diretor : Pessoa
{
    public Diretor() : base()
    {    }
}

Espero ter ajudado a tirar a sua dúvida, mas qualquer coisa pode perguntar!

Abraços!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software