目录

unnecessary_overrides

不要为了使用相同参数调用父类方法而覆盖该方法。

此规则在 Dart 2.0 中可用。

规则集:核心推荐flutter

此规则有一个可用的快速修复

详细信息

#

不要为了使用相同参数调用父类方法而覆盖该方法。

错误示例

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