覆盖抽象类的子类

时间:2018-07-06 00:12:23

标签: dart

我创建了一个抽象类:

abstract class Foo {
    void stuff();
}

如果我扩展了抽象类,是否应该使用@override对其进行注释?

class Bar extends Foo {
    @override     // is including this line good practice?
    void stuff() => print('Stuff done.');
}

我在这里有冲突:

  • 我实际上没有在stuff中定义Foo的行为,因此没有任何功能被覆盖。
  • extend中使用其他OO语言时,即使在抽象类中以前未定义的方法上,通常也要包含@override

什么是最佳做法?是否有现有的约定?

1 个答案:

答案 0 :(得分:0)

@override注释指示void stuff()覆盖了超类或接口中的方法。

添加@override对运行时没有影响,但是会影响静态分析。

分析器会产生警告,通过将这些棉绒标尺添加到analysis_options.yaml

来通知您您实际上并未按预期进行覆盖或意外覆盖了
linter:
  rules:
    - annotate_overrides
    - unnecessary_overrides