Sobes.tech
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.