Sobes.tech
Junior

Hogyan működik a 'protected' hozzáférés módosító a programozási nyelvekben?

sobes.tech MI

Válasz az MI-től

A protected hozzáférés módosító lehetővé teszi egy osztálytag (mező, metódus vagy tulajdonság) elérését:

  • Az adott osztályból, ahol ez a tag deklarálva van.
  • Öröklődő osztályokból (alosztályok).
  • Néhány nyelvben (például Java) - ugyanabból a csomagból származó összes osztályból.

Alkalmazhatóság nyelvenként:

  • Java: Elérhető a csomagon belül és bármilyen csomagból származó alosztályokban.
  • C#: Elérhető az osztályon belül és az alosztályokban. Létezik a protected internal kombináció is, amely az összeszerelésen belüli és alosztályokban való hozzáférést biztosít (beleértve más összeszerelésben lévő alosztályokat is).
  • C++: Elérhető az osztályon belül és az alosztályokban.
  • Python: Nincs szigorú protected. A védettnek szánt tagokat általában egy aláhúzás (_) előtaggal nevezik el, ami egy konvenció, nem szigorú hozzáférési korlátozás.

Példa (Java):

class Parent {
    protected int protectedField;

    protected void protectedMethod() {
        // ...
    }
}

class Child extends Parent {
    public void accessProtected() {
        this.protectedField = 10; // Hozzáférés az alosztályból
        this.protectedMethod(); // Hozzáférés az alosztályból
    }
}

class AnotherClassInSamePackage {
    public void accessProtected(Parent p) {
        p.protectedField = 20; // Hozzáférés ugyanabból a csomagból
        p.protectedMethod();   // Hozzáférés ugyanabból a csomagból
    }
}

class AnotherClassInDifferentPackage {
    // Nincs közvetlen hozzáférés a protected tagokhoz
    // kivéve, ha alosztály
}

A protected széles körben használatos öröklődés megvalósítására, lehetővé téve az alosztályok számára, hogy kibővítsék a szülőosztály funkcionalitását, miközben elrejtik azok belső részleteit a külvilág elől.