跳到主要內容

unnecessary_overrides

穩定
核心
提供修復

請勿覆寫方法以使用相同參數執行父類別方法呼叫。

詳細資訊

#

請勿覆寫方法以使用相同參數執行父類別方法呼叫。

錯誤範例

dart
class A extends B {
  @override
  void foo() {
    super.foo();
  }
}

正確範例

dart
class A extends B {
  @override
  void foo() {
    doSomethingElse();
  }
}

在以下情況下,覆寫成員是有效的

  • 如果型別 (傳回型別或參數型別) 與父類別成員不完全相同,
  • 如果 covariant 關鍵字已新增至其中一個參數,
  • 如果成員上存在文件註解,
  • 如果成員具有 @override 以外的註解,
  • 如果成員未使用 @protected 註解,但父類別成員有。

noSuchMethod 是一種特殊方法,此規則不會檢查。

啟用

#

若要啟用 unnecessary_overrides 規則,請在您的 analysis_options.yaml 檔案中,於 linter > rules 下新增 unnecessary_overrides

analysis_options.yaml
yaml
linter:
  rules:
    - unnecessary_overrides

如果您改用 YAML map 語法來設定 linter 規則,請在 linter > rules 下新增 unnecessary_overrides: true

analysis_options.yaml
yaml
linter:
  rules:
    unnecessary_overrides: true