虽然一直知道static属性标记的变量、常量或方法是属于类,而非类的实例,且子类不能继承父类的静态成员。不知从合适开始也就渐渐自以为子类不能继承父类的静态成员,当然也不能使用父类中声明的静态成员。带着这种想法,在子类中使用了非常多的与父类中含有同名的静态成员,直到今天出现父类中的静态成员被子类中的同名静态成员给覆盖的情形后,重新完整地阅读了一边Adobe官方关于static关键字的解释:
static
属性关键字
用法
class someClassName{
static var varName;
static const kName;
static function methodName() { // your statements here }
}
actionscript 3.0指定变量、常量或方法属于类,而不属于类的实例。
若要访问静态类成员,请使用类的名称而不是实例的名称。例如,Date 类具有名为 parse() 的静态方法,该方法仅能使用以下语法调用:
Date.parse()
对 Date 类的实例无法调用 parse() 方法。例如,以下代码将生成错误:
var myDateate = new Date(); myDate.parse("Jan 01 00:00:00 2006"); // error
您只能在类定义中使用 static,而不能在接口定义中使用。
未继承静态类成员。不能像在 Java 或 C++ 中那样,使用子类的名称引用静态类成员。然而,无需使用任何限定词,就可以在类或子类中引用静态变量或方法。请参见下例。
不能在静态方法的内部使用 super 语句或 this 关键字。