overridden_fields
字段重写了从“{0}”继承的字段。
描述
#当一个类定义了一个字段,该字段重写了超类中的一个字段时,分析器会生成此诊断信息。
使用另一个字段重写字段会导致对象拥有两个不同的字段,但由于字段名称相同,在给定作用域内只能引用其中一个字段。这可能导致混淆,将对其中一个字段的引用误认为是另一个字段的引用。
示例
#以下代码生成此诊断信息,因为 B
中的字段 f
遮蔽了 A
中的字段 f
dart
class A {
int f = 1;
}
class B extends A {
@override
int f = 2;
}
常见修复方法
#如果两个字段表示同一属性,则从子类中移除该字段
dart
class A {
int f = 1;
}
class B extends A {}
如果两个字段应是不同的,则重命名其中一个字段
dart
class A {
int f = 1;
}
class B extends A {
int g = 2;
}
如果这两个字段以某种方式相关但不能相同,请寻找不同的方法来实现所需的语义。