1
resposta

[Dúvida] Private Cpf na classe Diretor

Estou com dúvida pois, após declara o private set do Cpf na classe Funcionario, o Cpf pego como base(cpf) na classe Diretor passa a dar erro acusando como sendo inacessível .

1 resposta

Igor,

Eu acredito que você não entendeu o seguinte ponto:

Como a classe Diretor HERDA a classe funcionário, vai herdar tudo, inclusive o construtor da classe funcionário que EXIGE a obrigatoriedade de preencher o CPF na hora de instanciar a classe.

Outra característica do funcionário que o diretor herda é:

public string? CPF { get; private set; }

Como o "set" (definir) está privado, você NÃO pode modificar este valor fora da classe.

Então, por tabela, você NÃO pode acessar o CPF do diretor, pois também NÃO pode acessar o CPF do funcionário.

Sacou o lance da herança? Vai ficar inacessível mesmo, pois herdou a característica do funcionário.

DICA:

Decore as regras sagradas (sacra praecepta) dos modificadores de acesso:

  • public: acessível de qualquer ponto do código, ou seja não impõe restrições;
  • private: acessível somente dentro do contexto onde foi declarado, ou seja, um membro privado dentro de uma classe só é acessível dentro da própria classe;
  • protected: o elemento é acessível dentro da classe e suas derivadas;
  • internal: é o padrão no C#. Caso nenhum modificador seja declarado, definirá a acessibilidade do elemento dentro do executável ou dll onde foi declarado;
  • protected internal: é proveniente união dos modificadores protected e internal.

[]'s,

Fabio I.