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

时间:2016-03-31 10:02:05

标签: actionscript-3 flex mxml

表示父类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 !!

1 个答案:

答案 0 :(得分:1)

这是预期的。您需要阅读有关OOP的更多信息。

你在这里缺少的是尝试在A的实例上调用f()会产生相同的效果。根据定义,只有公共方法是可调用的。受保护的方法仅可用于子类和超类的实现中的调用和覆盖,它们不是公共的,因此它们不能在子类范围之外的实例上调用。受保护的非常类似于私有方法,除了它们可用于子类范围内的调用和覆盖。