在Dart中,我有以下代码:

class FirstClass {
  FirstClass(a) {

  }
}

class SecondClass extends FirstClass {

}

这会导致SecondClass出现错误,因为FirstClass没有默认的构造函数。

但是,当我尝试添加一个。

class FirstClass {
  FirstClass(a) {

  }

  FirstClass() {

  }
}

由于默认构造函数已经在FirstClass中定义,因此会出错。

我似乎可以做到这一点且不会出错的唯一方法是,如果父类(super class)根本不实现任何构造函数。我究竟做错了什么?

最佳答案

在dart中,您不能多次使用相同的方法/构造函数名称(即使使用不同的参数)。

您可以使用命名构造函数定义2个构造函数:

class FirstClass {
  FirstClass() {}
  FirstClass.withA(a) {}
}

或将a定义为可选,并仅保留一个构造函数:

class FirstClass {
  FirstClass([a]) {}
}

09-27 02:12