Was genau zwischen privaten unterscheidet und geschützt (in Flex)?
-
06-07-2019 - |
Frage
In Flex (und vielen anderen Sprachen) eine Funktion / Methode einer Klasse kann privat oder geschützt deklariert werden (oder öffentlich). Was ist der Unterschied? Ich habe den Eindruck, es hat etwas mit der Beziehung zu Kind-Klassen zu tun, und wie die Dinge geerbt oder aufgerufen werden, aber ich bin mir nicht sicher, was genau.
Lösung
Generell gilt:
- Privat Mitglieder können nur zugegriffen werden, von der Klasse selbst.
- Geschützte Mitglieder können nur von der Klasse selbst und seine Nachkommen zugegriffen werden.
- öffentliche Mitglieder für jedermann zugänglich sind.
So Sichtbarkeit erhöht sich, wenn Sie von privaten gehen zu öffentlichen geschützt.
In C ++ können Sie steuern, wie die Sichtbarkeit der Mitglieder an die Nachkommen durch das Voranstellen der Basisklassennamen mit den private
, protected
oder public
Schlüsselwörter vererbt werden sollte, dh Sie die Sichtbarkeit der Basisklasse Mitglieder höchstens sein wollen bei dass Ebene.
class A {
private:
int privA;
protected:
int protA;
public:
int pubA;
// privA can be accessed inside class A
// protA can be accessed inside class A
// pubA can be accessed inside class A
};
// pubA can be accessed by anyone
class B : public A {
// No change to visibility of members
// privA can't be accessed inside class B
// protA can be accessed inside class B
// pubA can be accessed inside class B
};
// pubA can be accessed by anyone
class C : protected A {
// Public members downgraded to protected
// privA can't be accessed inside class C
// protA can be accessed inside class C
// pubA can be accessed inside class C
};
// None of the members can be accessed outside class C
class D : private A {
// Public and protected members downgraded to private
// privA can't be accessed inside class D
// protA can't be accessed inside class D
// pubA can't be accessed inside class D
};
// None of the members can be accessed outside class D
In jedem der oben genannten Fälle sind die abgeleiteten Klassen natürlich in der Lage, ihre eigenen privaten, geschützten und öffentlichen Mitglieder einzuführen.