我可以访问子类的子类的静态变量吗?我不想实例化它,只是想获取变量,因为它已经被子类初始化了。
示例:
package
{
public class A extends MovieClip {
private var classB:B = new B();
public function A() {
//**ACCESS B.C.MYVAR**
}
}
}
package
{
public class B extends MovieClip {
private var classC:C = new C();
}
}
package
{
public class C extends MovieClip {
public static var MYVAR = 1;
}
}
谢谢!
最佳答案
要访问公共(public)静态变量,您可以通过 Class.property 从同一包中的任何位置进行访问。
因此,要访问 C 类中定义的 MYVAR,您可以使用 C.MYVAR。
您不需要创建类的实例来访问其中的静态属性或函数 - 只要它们是公共(public)的即可。
我不建议使用静态,除非在极少数情况下,例如“实用程序”类或类似的东西。内置的 Math 类就是一个很好的例子。
我主要在保存常量的类中使用 static,如下例所示:
package
{
public class Elements
{
public static const FIRE:String = "FIRE_ELEMENT";
public static const WATER:String = "WATER_ELEMENT";
public static const ICE:String = "ICE_ELEMENT";
}
}
然后我像这样使用它:
var myelement:String = Elements.WATER;
关于flash - AS3从父类引用子类的子类而不实例化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5847854/