在Dart中无法访问父类的静态变量?

时间:2013-07-13 12:54:15

标签: dart

飞镖码:

main() {
    print(PPP.name);
    print(CCC.name);
}

class PPP {
    static String name = "PPP";
}

class CCC extends PPP {
}

打印:

PPP
Unhandled exception:
No static getter 'name' declared in class 'CCC'.

NoSuchMethodError : method not found: 'name'
Receiver: Type: class 'CCC'
Arguments: [...]

所以在Dart中访问父类的静态变量是不可用的?

1 个答案:

答案 0 :(得分:4)

来自Dart编程语言规范:

一个类的static members是静态methodsgetterssettersstatic variables

  • Superclass static membersnot in scope in subclassesdo not conflictsubclass members
  • 静态成员为never inherited
  • 静态成员never override anything

因此,如果在超类中声明一些静态成员,那么这些成员不会在子类中继承。

它们保留在它们声明的那个类中,并且不与子类中的其他声明静态成员冲突。


问:不能在Dart中访问父类的静态变量吗?

答:父类的静态变量不能在子类中访问(作为它自己的),因为它在子类中不存在(不是继承)。