От @override
Doc:
аннотацию используется для обозначения члена экземпляра (метод, поле, геттер или сеттера) в качестве переопределения унаследованного члена класса. Инструменты могут использовать эту аннотацию, чтобы предоставить предупреждение, если нет переопределенного элемента.
Таким образом, это зависит от используемого вами инструмента.
В текущем Dart Editor (r24275), нет никакого предупреждения на следующий код, но он должен (это похоже на ошибку).
import 'package:meta/meta.dart';
class A {
m1() {}
}
class B extends A {
@override m1() {} // no warning because A has a m1()
@override m2() {} // tools should display a warning because A has no m2()
}
Это, вероятно, хорошая идея использовать @Override сейчас в любом случае, так как нет никаких проблем с этим способом, и когда инструменты они будут работать. Кроме того, это полезно для других программистов, читающих код. –