在Dart中,我有以下代码:
class FirstClass {
FirstClass(a) {
}
}
class SecondClass extends FirstClass {
}
这导致SecondClass
错误,因为FirstClass
没有默认构造函数。
但是当我尝试添加一个时。
class FirstClass {
FirstClass(a) {
}
FirstClass() {
}
}
它出错,因为默认构造函数已在FirstClass
中定义。
我似乎唯一可以使这项工作而不是错误的方法是,如果超类根本没有实现任何构造函数。我做错了什么?
答案 0 :(得分:11)
在dart中,您不能多次使用相同的方法/构造函数名称(即使使用不同的参数)。
在您的情况下,您可以使用命名构造函数来定义2个构造函数:
class FirstClass {
FirstClass() {}
FirstClass.withA(a) {}
}
或将a
定义为可选,并且只保留一个构造函数:
class FirstClass {
FirstClass([a]) {}
}
答案 1 :(得分:0)
在dart中,您不能像Java这样的其他语言拥有多个构造函数。
您可以将默认构造函数定义为
class FirstClass {
FirstClass() {}
}
OR
class FirstClass {
String name;
int age;
FirstClass(name, age) {
this.name = name;
this.age = age;
}
}
您不能在其中包含默认值以及参数构造函数。