Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 变量不是继承的吗? 请考虑以下代码: 抽象类抽象类{ 静态int _someValue=10; ClassAbstract(){} } 类NormalClass扩展了类抽象{ NormalClass():super(){} void RunMe(){ 打印(“抽象超级值:$\u someValue”);//此处出错 } } void main(){ NormalClass NormalClass=新的NormalClass(); normalClass.RunMe(); 打印(“申请关闭”); }_Dart - Fatal编程技术网

Dart 变量不是继承的吗? 请考虑以下代码: 抽象类抽象类{ 静态int _someValue=10; ClassAbstract(){} } 类NormalClass扩展了类抽象{ NormalClass():super(){} void RunMe(){ 打印(“抽象超级值:$\u someValue”);//此处出错 } } void main(){ NormalClass NormalClass=新的NormalClass(); normalClass.RunMe(); 打印(“申请关闭”); }

Dart 变量不是继承的吗? 请考虑以下代码: 抽象类抽象类{ 静态int _someValue=10; ClassAbstract(){} } 类NormalClass扩展了类抽象{ NormalClass():super(){} void RunMe(){ 打印(“抽象超级值:$\u someValue”);//此处出错 } } void main(){ NormalClass NormalClass=新的NormalClass(); normalClass.RunMe(); 打印(“申请关闭”); },dart,Dart,运行此操作时,我收到一个错误: 类“NormalClass”没有实例getter”_someValue@0x213da713'. NoSuchMethodError:找不到方法:'_someValue@0x213da713' 接收方:“NormalClass”的实例 论点:[] 也许我在这里弄错了,但是全局静态变量必须被继承,但是从这个例子中可以看出,它并没有…静态成员实际上并没有在Dart中被继承。如果要在其声明类之外访问它们,则必须始终使用类名限定访问权限 就你而言: classnorma

运行此操作时,我收到一个错误:

类“NormalClass”没有实例getter”_someValue@0x213da713'.
NoSuchMethodError:找不到方法:'_someValue@0x213da713'
接收方:“NormalClass”的实例
论点:[]
也许我在这里弄错了,但是全局静态变量必须被继承,但是从这个例子中可以看出,它并没有…

静态成员实际上并没有在Dart中被继承。如果要在其声明类之外访问它们,则必须始终使用类名限定访问权限

就你而言:

classnormalclass扩展了ClassAbstract{
void runMe(){
打印(“抽象超级值:${ClassAbstract.\u someValue}”);
}
}
本规范第7.7章(非规范性部分)对此有几句话要说:

静态方法的继承在Dart中几乎没有用处。不能重写静态方法。任何需要的静态函数都可以从其声明库中获得,并且不需要通过继承将其引入范围。经验表明,开发人员对继承的方法不是实例方法的想法感到困惑

当然,静态方法的整个概念是有争议的,但它保留在这里,因为许多程序员都熟悉它。Dart静态方法可以看作是封闭库的函数