【发布时间】:2018-12-04 21:03:02
【问题描述】:
假设我们有一个class a:
class A {
A._();
}
它的默认构造函数是私有的:A._().
有没有办法extends那个班级?
问题
class B extends A {
}
这会导致编译器错误:
The superclass 'A' doesn't have a zero argument constructor.
尝试为 B 我自己 (B()) 编写 any 构造函数会导致另一个错误:
The superclass 'A' doesn't have an unnamed constructor.
【问题讨论】:
-
如果你写了一个构造函数,这个类不会得到一个默认构造函数(隐含的
A():super();构造函数,否则会被添加)。A._构造函数不是“默认构造函数”,也不是未命名的构造函数。你仍然可以在类中添加一个未命名的构造函数A();。 -
@lrn Default constructor 是我为它找到的术语。通常它是
A(),但是一旦添加了A._(),它就会被删除。因此A既没有 public 零参数也没有未命名的构造函数。A()将是零参数且未命名。
标签: dart