假设我们有一个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.
答案 0 :(得分:3)
没有,没有办法。这是防止扩展的有效方法。
您仍然可以执行该类。
class B implements A {}
如果类 also 具有公共的非工厂构造函数,您仍然可以通过将构造函数调用转发到此类超类的命名构造函数来对其进行扩展。
class B extends A {
B() : super.other();
}