【发布时间】:2020-08-04 15:18:39
【问题描述】:
我猜下面的代码比任何解释都清楚
https://dartpad.dartlang.org/a5107762d7f5d564f0f20206ddbd48d1
关于标题:有没有办法避免每次扩展类时都调用“super”?
谢谢
【问题讨论】:
-
如果基类有一个不带参数的默认构造函数,你就不需要显式调用
super()。否则,没有。派生类必须以某种方式调用基类构造函数;如果您没有明确使用super,并且如果基类构造函数不是默认构造函数或者如果它需要参数,编译器如何知道应该调用哪个? -
我太难了,我只是有人对此有一个hacky解决方法
-
对于需要将参数传递给基类构造函数的架构,这是不可能的。您可能可以重新设计您的类,以便基类提供
a和bgetter 并依赖派生类覆盖它们,然后基类构造函数可以不带参数。
标签: flutter inheritance dart abstract-class super