Junior
Cum funcționează modificatorul de acces 'protected' în limbajele de programare?
sobes.tech AI
Răspuns de la AI
Modificatorul de acces protected oferă acces la un membru al clasei (câmp, metodă sau proprietate) din:
- Clasa în care este declarat acest membru.
- Clasele moștenitoare (subclase).
- În unele limbaje (de exemplu, Java) - din toate clasele din același pachet.
Aplicabilitate în funcție de limbaj:
- Java: Disponibil în cadrul pachetului și în clasele moștenitoare din orice pachet.
- C#: Disponibil în cadrul clasei și în clasele moștenitoare. Există și combinația
protected internal, care oferă acces în cadrul assembly-ului și în clasele moștenitoare (inclusiv în clasele moștenitoare din alte assembly-uri). - C++: Disponibil în cadrul clasei și în clasele moștenitoare.
- Python: Nu are un
protectedstrict. Membrii destinați protecției sunt de obicei denumiți cu un underscore (_) la început, ceea ce este o convenție și nu o restricție strictă de acces.
Exemplu (Java):
class Parent {
protected int protectedField;
protected void protectedMethod() {
// ...
}
}
class Child extends Parent {
public void accessProtected() {
this.protectedField = 10; // Acces din clasa moștenitoare
this.protectedMethod(); // Acces din clasa moștenitoare
}
}
class AnotherClassInSamePackage {
public void accessProtected(Parent p) {
p.protectedField = 20; // Acces din același pachet
p.protectedMethod(); // Acces din același pachet
}
}
class AnotherClassInDifferentPackage {
// Nu are acces direct la membrii protected
// cu excepția cazului în care este o subclasă
}
protected este folosit pe scară largă pentru implementarea moștenirii, permițând claselor moștenitoare să extindă funcționalitatea clasei părinte, în timp ce ascund detaliile interne ale interacțiunii lor față de lumea exterioară.