mxml 中的子类无法访问 AS3 保护方法

AS3 protected method are inaccessible for subclass in mxml

对于父 class A 包含受保护的方法 f() :

public class A {

protected  function f():void
        {
        }
}

public class B extends A{
}

当我创建一个 mxml 并创建一个 B 实例并导入所有 A 和 B(在同一个包中)时

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

这是意料之中的。您需要阅读有关 OOP 的更多信息。

您在这里缺少的是尝试在 A 的实例上调用 f() 会产生相同的效果。根据定义,只有 public 方法是可调用的。受保护的方法只能在 sub类 和 super 类 的实现内部调用和覆盖,它们不是 public,因此它们不能在 sub[= 范围之外的实例上调用16=]。 Protected 与私有方法非常相似,只是它们可以在 sub类.

范围内调用和覆盖