Protegido

Definición: ¿Qué significa protegido?

Protegido, en C #, es una palabra clave que se usa para declarar la accesibilidad de un miembro de la clase, de modo que el acceso a ese miembro se limita a la clase contenedora en la que se declara oa cualquier clase derivada de la clase contenedora. La accesibilidad protegida se puede usar en declaraciones de campos, métodos y propiedades para evitar que sean completamente visibles fuera de su clase.

Protegido es un modificador de acceso que permite que el miembro de una clase sea más visible que la accesibilidad privada pero menos que pública. Los miembros protegidos de una clase base solo pueden ser compartidos por sus descendientes, que pueden anularlos o usarlos.

El modificador protegido ayuda a implementar el concepto de encapsulación en la programación orientada a objetos de C #. Se utiliza principalmente con miembros de una clase base que se reutilizan en la clase derivada, lo que ayuda a centralizar la lógica común junto con una rica jerarquía de clases.

Techinfo explica Protegido

Un miembro protegido puede ser accesible en la clase derivada solo si el acceso tiene lugar a través de la clase derivada. Si es necesario acceder a él desde fuera del texto del programa de la clase en la que está declarado, debe ser a través de una instancia de tipo derivado o un tipo de clase construido a partir de él.

Por ejemplo, la clase BankAccount representa los detalles de la cuenta de un usuario y puede definir un método, CalculateInterest, como protegido para que cualquier clase derivada de la clase BankAccount (como SavingsAccount, CheckingAccount, etc.) pueda anular el método CalculateInterest con el código necesario para Calcule el interés según el tipo de cuenta.

Un miembro protegido no se puede usar con un modificador estático porque solo se puede acceder a él a través de una instancia. Un modificador protegido no se puede usar con miembros de una estructura porque la estructura no admite la herencia.

Un método protegido se puede declarar con el modificador "virtual" para extender la lógica que es necesaria ejecutar para la especialización en la clase derivada.

Esta definición se escribió en el contexto de C #