Junior
Ako funguje modifikátor prístupu 'protected' v programovacích jazykoch?
sobes.tech AI
Odpoveď od AI
Prístupový modifikátor protected umožňuje prístup k členovi triedy (pole, metóda alebo vlastnosť) z:
- Samej triedy, v ktorej je tento člen deklarovaný.
- Podtried (potomkov).
- V niektorých jazykoch (napríklad Java) - zo všetkých tried v rámci toho istého balíka.
Použiteľnosť podľa jazykov:
- Java: Dostupné v rámci balíka a v podtriedach z akéhokoľvek balíka.
- C#: Dostupné v rámci triedy a v podtriedach. Existuje aj kombinácia
protected internal, ktorá umožňuje prístup v rámci zostavy a v podtriedach (vrátane tried v iných zostavách). - C++: Dostupné v rámci triedy a v podtriedach.
- Python: Nemá prísne
protected. Členovia určení na ochranu sa zvyčajne pomenúvajú s podtržítkom (_) na začiatku, čo je konvencia a nie prísne obmedzenie prístupu.
Príklad (Java):
class Parent {
protected int protectedField;
protected void protectedMethod() {
// ...
}
}
class Child extends Parent {
public void accessProtected() {
this.protectedField = 10; // Prístup z podtriedy
this.protectedMethod(); // Prístup z podtriedy
}
}
class AnotherClassInSamePackage {
public void accessProtected(Parent p) {
p.protectedField = 20; // Prístup z toho istého balíka
p.protectedMethod(); // Prístup z toho istého balíka
}
}
class AnotherClassInDifferentPackage {
// Nemá priamy prístup k protected členom
// pokiaľ nie je podtriedou
}
protected sa široko používa na implementáciu dedičnosti, umožňujúc podtriedam rozširovať funkčnosť rodičovskej triedy, pričom skrýva vnútorné detaily ich interakcie od vonkajšieho sveta.