【发布时间】:2020-04-10 15:05:19
【问题描述】:
我有这样的课:
class A {
int _foo () {
return 5;
}
}
我有另一个类扩展了上面的方法并覆盖了私有方法:
class B extends A {
@override
int _foo() {
return super._foo() + 1;
}
}
当B 与A 在同一个库中时,这将按预期工作。
但是当它们在不同的文件中时,似乎我无法覆盖_foo() 或调用super._foo()。
对此有什么解决方法?这甚至可能吗?
请注意,我的真实用例是 A 是第 3 方库,我想覆盖私有方法。
【问题讨论】:
-
你不能覆盖另一个库中的私有方法。
-
甚至没有扩展?
-
Dart 扩展是语法糖。它们不允许您从根本上做任何独立功能无法做到的事情。虽然您可以创建一个恰好与现有私有方法同名的扩展方法,但该类库中的现有调用者不会神奇地使用它。
-
好的。只需将您的评论作为答案,我就会接受。谢谢。
标签: dart