invalid_override_of_non_virtual_member
成员 '{0}' 在 '{1}' 中被声明为非虚成员,不能在子类中覆盖。
描述
#当类、mixin 或枚举的成员覆盖带有 @nonVirtual
注解的成员时,分析器会产生此诊断信息。
示例
#以下代码会产生此诊断信息,因为 B
中的方法 m
覆盖了 A
中的方法 m
,而 A
中的方法 m
带有 @nonVirtual
注解
dart
import 'package:meta/meta.dart';
class A {
@nonVirtual
void m() {}
}
class B extends A {
@override
void m() {}
}
常见修复方法
#如果超类中方法上的注解是正确的(超类中的方法不应被覆盖),则移除或重命名覆盖方法
dart
import 'package:meta/meta.dart';
class A {
@nonVirtual
void m() {}
}
class B extends A {}
如果超类中的方法旨在被覆盖,则移除 @nonVirtual
注解
dart
class A {
void m() {}
}
class B extends A {
@override
void m() {}
}