Junior — Middle
¿Cuál es la diferencia entre los modificadores de acceso private y protected en programación orientada a objetos?
sobes.tech AI
Respuesta de la IA
En la programación orientada a objetos (usando C# como ejemplo), los modificadores de acceso private y protected difieren en el nivel de visibilidad de los miembros de la clase:
-
private — el miembro de la clase solo es accesible dentro de la misma clase. Ni las subclases ni otras clases pueden acceder a él.
-
protected — el miembro de la clase es accesible dentro de la misma clase y en todas sus subclases (herederas), incluso si están en un espacio de nombres diferente.
Ejemplo:
class BaseClass
{
private int privateField = 1;
protected int protectedField = 2;
void Show()
{
Console.WriteLine(privateField); // Disponible
Console.WriteLine(protectedField); // Disponible
}
}
class DerivedClass : BaseClass
{
void ShowDerived()
{
// Console.WriteLine(privateField); // Error: privateField no accesible
Console.WriteLine(protectedField); // Disponible
}
}
Por lo tanto, protected amplía el ámbito de visibilidad en comparación con private, permitiendo a los herederos trabajar con los miembros protegidos de la clase base.