跳到主要內容

annotate_overrides

成員 '{0}' 覆蓋了繼承的成員,但未標註 '@override'。

描述

#

當成員覆蓋了繼承的成員,但未標註 @override 時,分析器會生成此診斷資訊。

示例

#

以下程式碼會生成此診斷資訊,因為類 B 中的方法 m 覆蓋了類 A 中同名的方法,但未標記為有意覆蓋

dart
class A {
  void m() {}
}

class B extends A {
  void m() {}
}

常見修復方法

#

如果子類中的成員旨在覆蓋超類中的成員,則新增 @override 標註

dart
class A {
  void m() {}
}

class B extends A {
  @override
  void m() {}
}

如果子類中的成員並非旨在覆蓋超類中的成員,則重新命名其中一個成員

dart
class A {
  void m() {}
}

class B extends A {
  void m2() {}
}