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.