2016-03-31 15 views
1

für eine Elternklasse A enthält eine geschützte Methode f():AS3 geschützte Verfahren sind unzugänglich für die Unterklasse in mxml

public class A { 

protected function f():void 
     { 
     } 
} 

public class B extends A{ 
} 

wenn i eine mxml erstellen und eine Instanz von B mit importiert alle von A und B erstellen (sind in der gleichen Packung)

B b = new B(); 
//the problem : 
b.f(); // inaccessible method !! 
+1

Was ist der Sinn der Ablehnung dieser Frage? Er hat sein Problem klar beschrieben, Codebeispiele bereitgestellt und das erwartete Ergebnis impliziert. Wenn Sie eine Frage ablehnen, weil der Benutzer wenig Erfahrung mit dem Codieren hat, können wir die gesamte Site genauso gut schließen. – DodgerThud

Antwort

1

Dies wird erwartet. Sie müssen mehr über OOP lesen.

Was Sie hier vermissen, ist, dass der Versuch, f() für eine Instanz von A aufzurufen, denselben Effekt haben würde. Per Definition sind nur öffentliche Methoden aufrufbar. Geschützte Methoden stehen nur innerhalb der Implementierung von Unterklassen und Superklassen zum Aufruf und zum Überschreiben zur Verfügung, sie sind nicht öffentlich und daher in Instanzen außerhalb des Bereichs von Unterklassen nicht aufrufbar. Geschützt entspricht weitgehend privaten Methoden, außer dass sie im Rahmen von Unterklassen zum Aufrufen und Überschreiben verfügbar sind.