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类.
范围内调用和覆盖
对于父 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类.
范围内调用和覆盖