Sobes.tech
Junior — Middle

Was ist der Unterschied zwischen den Zugriffsmodifikatoren private und protected in der objektorientierten Programmierung?

sobes.tech KI

Antwort von AI

In der objektorientierten Programmierung (am Beispiel von C#) unterscheiden sich die Zugriffsmodifikatoren private und protected im Sichtbarkeitsgrad der Klassenmitglieder:

  • private — Das Klassenmitglied ist nur innerhalb der Klasse selbst zugänglich. Weder Unterklassen noch andere Klassen können darauf zugreifen.

  • protected — Das Klassenmitglied ist innerhalb der Klasse selbst und in allen ihren Unterklassen (Erben) zugänglich, auch wenn sie sich in einem anderen Namensraum befinden.

Beispiel:

class BaseClass
{
    private int privateField = 1;
    protected int protectedField = 2;

    void Show()
    {
        Console.WriteLine(privateField);   // Verfügbar
        Console.WriteLine(protectedField); // Verfügbar
    }
}

class DerivedClass : BaseClass
{
    void ShowDerived()
    {
        // Console.WriteLine(privateField); // Fehler: privateField ist nicht zugänglich
        Console.WriteLine(protectedField);  // Verfügbar
    }
}

Daher erweitert protected den Sichtbarkeitsbereich im Vergleich zu private, was es Erben ermöglicht, mit den geschützten Mitgliedern der Basisklasse zu arbeiten.