如何覆盖子类中没有可选参数的方法?

问题描述 投票:0回答:1

我有这样的课:

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方法?

dart
1个回答
1
投票

您不能这样做,原因可以在以下代码中看到:

List<Parent> list = [Child01(), Child02()];
list.forEach((e) => e.doSomething(number: 5));

这是允许的,因为Parent告诉我们doSomething有一个可选参数,称为number。但是,当我们最终使用它不期望的参数调用Child02对象时会发生什么?在Dart中,您不允许将任意参数(命名或不命名)发送给方法,并查看是否要使用它。

© www.soinside.com 2019 - 2024. All rights reserved.