在Flutter中使用@override的目的是什么?

问题描述 投票:8回答:2

在flutter文档中,关键字@override在类中使用了很多。我试图寻找意义,但仍然无法理解。这个@override关键字的目的是什么?

注意:我来自JavaScript背景。

dart flutter
2个回答
14
投票

@override只是指出该函数也是在祖先类中定义的,但是被重新定义为在当前类中执行其他操作。它还用于注释抽象方法的实现。它是可选的,但建议使用,因为它提高了可读性。

注释@override将实例成员标记为覆盖具有相同名称的超类成员。

https://api.dartlang.org/stable/1.24.3/dart-core/override-constant.html

JavaScript还支持@override作为注释,但它必须在注释中。 http://usejsdoc.org/tags-override.html


0
投票

注释@override将实例成员标记为覆盖具有相同名称的超类成员。

注释适用于实例方法,getter和setter以及实例字段,这意味着字段的隐式getter和setter被标记为重写,但字段本身不是。

@override表示法的目的是捕获超类重命名成员的情况,并且用于覆盖成员的独立子类可以使用超类实现静默地继续工作。

编辑器或针对程序员的类似工具可以报告如果类从超类或接口继承了带注释的成员的声明。

明智地使用@override注释,仅适用于超类不受程序员控制的方法,超类位于不同的库或包中,并且不被认为是稳定的。无论如何,使用@override是可选的。

例如,有意在Dart平台库中不使用注释,因为它们仅依赖于自身。

取自https://docs.flutter.io/flutter/dart-core/override-constant.html

© www.soinside.com 2019 - 2024. All rights reserved.