Definição – o que significa protegido?
Protegido, em C #, é uma palavra-chave usada para declarar a acessibilidade de um membro da classe de forma que o acesso a esse membro seja limitado à classe que o contém ou a qualquer classe derivada da classe que o contém. A acessibilidade protegida pode ser usada em declarações de campo, método e propriedade para evitar que sejam totalmente visíveis fora de sua classe.
Protegido é um modificador de acesso que permite que o membro de uma classe seja mais visível do que privado, mas menos do que a acessibilidade pública. Os membros protegidos de uma classe base podem ser compartilhados apenas por seus descendentes, que podem substituí-los ou usá-los.
O modificador protegido ajuda a implementar o conceito de encapsulamento na programação orientada a objetos C #. É usado principalmente com membros de uma classe base que são reutilizados na classe derivada, o que ajuda a fornecer a centralização da lógica comum junto com uma rica hierarquia de classes.
Definirtec explica protegido
Um membro protegido pode ser acessível na classe derivada somente se o acesso ocorrer por meio da classe derivada. Se ele precisa ser acessado de fora do texto do programa da classe em que está declarado, deve ser por meio de uma instância do tipo derivado ou de um tipo de classe construído a partir dele.
Por exemplo, a classe BankAccount representa os detalhes da conta de um usuário e pode definir um método, CalculateInterest, como protegido para que qualquer classe derivada da classe BankAccount (como SavingsAccount, CheckingAccount, etc.) possa substituir o método CalculateInterest com o código necessário para calcular juros com base no tipo de conta.
Um membro protegido não pode ser usado com um modificador estático porque pode ser acessado apenas por meio de uma instância. Um modificador protegido não pode ser usado com membros de uma estrutura porque a herança não é suportada por estrutura.
Um método protegido pode ser declarado com o modificador “virtual” para estender a lógica que é necessária para ser executada para especialização na classe derivada.
Esta definição foi escrita no contexto de C #