【发布时间】:2021-10-28 05:49:07
【问题描述】:
我想使用代码生成器为应该实现一些样板方法的类创建扩展,但显然我不能:)
示例代码:
abstract class Base {
foo(int param) { print("Base::foo $param"); }
}
class Derived extends Base {
}
extension DerivedWithFoo on Derived {
foo(int param) { print("Derived::foo $param");}
}
void main() {
final d = Derived();
d.foo(5);
}
输出:
Base::foo 5
看起来扩展方法调用以某种方式提前绑定?
谢谢。
【问题讨论】:
-
扩展方法是静态函数的语法糖。它们完全依赖于对象的静态类型,因此它们不能是多态的。见dart.dev/guides/language/…
-
谢谢,由于某种原因,我在 Dart 手册中(很快)找不到这个。