Sobes.tech
Junior — Middle

Wat is het verschil tussen de toegangsmethoden private en protected in objectgeoriënteerd programmeren?

sobes.tech AI

Antwoord van AI

In objectgeoriënteerd programmeren (met C# als voorbeeld) verschillen de toegangsmutators private en protected in het niveau van zichtbaarheid van de leden van de klasse:

  • private — het lid van de klasse is alleen toegankelijk binnen de klasse zelf. Noch subklassen, noch andere klassen kunnen er toegang toe krijgen.

  • protected — het lid van de klasse is toegankelijk binnen de klasse zelf en in al haar subklassen (erfgenamen), zelfs als ze zich in een andere naamruimte bevinden.

Voorbeeld:

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

    void Show()
    {
        Console.WriteLine(privateField);   // Beschikbaar
        Console.WriteLine(protectedField); // Beschikbaar
    }
}

class DerivedClass : BaseClass
{
    void ShowDerived()
    {
        // Console.WriteLine(privateField); // Fout: privateField niet toegankelijk
        Console.WriteLine(protectedField);  // Beschikbaar
    }
}

Dus, protected breidt het bereik van zichtbaarheid uit in vergelijking met private, waardoor erfgenamen kunnen werken met de beschermde leden van de basisklasse.