我创建了一个抽象类:
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
。什么是最佳做法?是否有现有的约定?
答案 0 :(得分:0)
@override
注释指示void stuff()
覆盖了超类或接口中的方法。
添加@override
对运行时没有影响,但是会影响静态分析。
分析器会产生警告,通过将这些棉绒标尺添加到analysis_options.yaml
linter:
rules:
- annotate_overrides
- unnecessary_overrides