Junior
Hoe werkt de toegangsmodule 'protected' in programmeertalen?
sobes.tech AI
Antwoord van AI
De toegangsmodule protected biedt toegang tot een lid van een klasse (veld, methode of eigenschap) vanuit:
- De klasse zelf waar dat lid is gedeclareerd.
- Afgeleide klassen (subklassen).
- In sommige talen (bijvoorbeeld Java) - vanuit alle klassen binnen hetzelfde pakket.
Toepasselijkheid per taal:
- Java: Beschikbaar binnen het pakket en in afgeleide klassen van elk pakket.
- C#: Beschikbaar binnen de klasse en in afgeleide klassen. Er bestaat ook de combinatie
protected internal, die toegang biedt binnen de assembly en in afgeleide klassen (inclusief klassen in andere assemblies). - C++: Beschikbaar binnen de klasse en in afgeleide klassen.
- Python: Heeft geen strikte
protected. Leden bedoeld voor bescherming worden meestal met een onderstreping (_) aan het begin genoemd, wat een conventie is en geen strikte toegangsbeperking.
Voorbeeld (Java):
class Parent {
protected int protectedField;
protected void protectedMethod() {
// ...
}
}
class Child extends Parent {
public void accessProtected() {
this.protectedField = 10; // Toegang vanuit de afgeleide klasse
this.protectedMethod(); // Toegang vanuit de afgeleide klasse
}
}
class AnotherClassInSamePackage {
public void accessProtected(Parent p) {
p.protectedField = 20; // Toegang uit hetzelfde pakket
p.protectedMethod(); // Toegang uit hetzelfde pakket
}
}
class AnotherClassInDifferentPackage {
// Heeft geen directe toegang tot protected leden
// tenzij het een subklasse is
}
protected wordt veel gebruikt voor het implementeren van overerving, waardoor afgeleide klassen de functionaliteit van de ouderklasse kunnen uitbreiden, terwijl ze de interne details van hun interactie verbergen voor de buitenwereld.