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() {}
}