情况如下:
abstract class A {
void doSomething() => print('Do something..');
}
class B implements A {
@override
void doSomething() => print('Do something already..');
}
class C extends A {
}
我有一个抽象的A类.
一切正常,直到我将工厂构造函数添加到A类:
abstract class A {
factory A() => new B();
void doSomething() => print('Do something..');
}
这会在我的IDE中导致错误(IntelliJ IDEA):
需要生成构造函数,但工厂发现
我的第一个 idea 是为C类创建构造函数,在这里我会为A调用工厂构造函数.有可能吗?
当我try 扩展Exception类时,我遇到了同样的问题.它还有一个工厂构造函数:
abstract class Exception {
factory Exception([var message]) => new _ExceptionImplementation(message);
}
这就是为什么要创建我的自定义异常,我必须实现Exception类,而不是扩展它,这真的让我感到困惑.
我还想澄清一个术语问题. 我可以说从B类的Angular 来看,A是一个接口,所以B实现的是接口A吗? 然而,从C类的Angular 来看,A是一个抽象类,所以C是对抽象类A的扩展.这些说法正确吗?
非常感谢.
德米特里.