这里有两个方面的工作:
如果 确实 明确指定了构造函数(如中所述
A
),则Java编译器将 不会 为您创建无参数构造函数。如果您未明确指定构造函数(如所示
B
),则Java编译器将为您创建一个无参数的构造函数,如下所示:
B() { super(); }(可访问性取决于类本身的可访问性。)
试图调用超类无参数构造函数-因此它必须存在。您有三种选择:
- 在以下位置显式提供无参数的构造函数
A
- 显式提供无参数构造函数,在
B
该构造函数中,使用适当的int
参数显式调用基类构造函数。 - 提供一个参数化的构造函数,在
B
其中调用基类的构造函数



