在flutter文档中,关键字@override在类中使用了很多.我试图寻找意义,但仍然无法理解.这个@override关键字的目的是什么?
注意:我来自JavaScript背景.
Jac*_*ips 17
@override只是指出该函数也是在祖先类中定义的,但是被重新定义为在当前类中执行其他操作.它还用于注释抽象方法的实现.它是可选的,但建议使用,因为它提高了可读性.
注释@override将实例成员标记为覆盖具有相同名称的超类成员.
https://api.dartlang.org/stable/1.24.3/dart-core/override-constant.html
JavaScript也支持@override作为注释,但它必须在注释中.http://usejsdoc.org/tags-override.html.
根据文档
,注释@override将实例成员标记为覆盖同名的超类成员。
例子
class A {
void foo() {
print("Class A");
}
}
class B extends A {}
class C extends A {
@override foo() {
print("Class C");
}
}
void main() {
A a = A();
B b = B();
C c = C();
a.foo();
b.foo();
c.foo();
}
Run Code Online (Sandbox Code Playgroud)
输出是:
Class A
Class A
Class C
Run Code Online (Sandbox Code Playgroud)
发生的事情B extends A因此继承了 的所有方法A。因此,当b.foo()调用时,它会调用其父类的方法。
但C它有foowithoverride关键字,这意味着它将覆盖foo其父类中的声明。
| 归档时间: |
|
| 查看次数: |
6154 次 |
| 最近记录: |