我想做以下几件事。
class MySuperClass {
final String s;
MySuperClass(this.s);
factory MySuperClass.from(int a) {
return MySuperClass(a.toString());
}
}
class MySubClass extends MySuperClass {
final int b;
MySubClass(int a, this.b) : super.from(a); // error
}如何调用超类的工厂构造函数?
给出的错误是:
The constructor 'MySuperClass MySuperClass.from(int a)' is a factory constructor, but must be a generative constructor to be a valid superinitializer
发布于 2021-01-31 16:12:21
据我所知,不能从子类调用工厂构造函数。例如,工厂构造函数可以返回一个单例。
相反,创建一个私有构造函数MySuperClass._internal,并在您的factory构造函数和子类中使用它。
class MySuperClass {
final String s;
MySuperClass._internal(this.s);
factory MySuperClass(int a) {
print('called');
return MySuperClass._internal(a.toString());
}
}
class MySubClass extends MySuperClass {
final int b;
MySubClass(int a, this.b) : super._internal(a.toString());
}https://stackoverflow.com/questions/65980571
复制相似问题