我有这样的课:
abstract class Parent {
void doSomething({dynamic number});
}
class Child01 extends Parent {
@override
void doSomething({dynamic number}) {
...
}
}
class Child02 extends Parent {
@override
void doSomething() {
...
}
}
如何像上面那样在没有可选参数的情况下覆盖类doSomething()
中的Child02
方法?
您不能这样做,原因可以在以下代码中看到:
List<Parent> list = [Child01(), Child02()];
list.forEach((e) => e.doSomething(number: 5));
这是允许的,因为Parent
告诉我们doSomething
有一个可选参数,称为number
。但是,当我们最终使用它不期望的参数调用Child02
对象时会发生什么?在Dart中,您不允许将任意参数(命名或不命名)发送给方法,并查看是否要使用它。