什么是Java上的隐式构造函数

是否必须在Java中调用基类构造函数? 在C ++中它是可选的,所以我问这个。

当我扩展ArrayAdapter ,我收到此错误: "Implicit super constructor ArrayAdapter() is undefined. Must explicitly invoke another constructor"

那么,调用基础构造函数的目的是什么? 当我创建对象基类时,构造函数将调用&然后它来派生权。

如果你不自己调用no-args构造函数,则会隐式调用no-args构造函数,如果该构造函数不存在则无效。 需要调用超级构造函数的原因是超类通常具有一些它在构造之后所期望的状态,其中可能包括无法在子类中设置的私有变量。 如果不调用构造函数,它会使对象处于可能无效的状态,这可能会导致各种问题。

没有必要调用超类的no-args构造函数。 如果你想用args调用构造函数,用户超级关键字如下面的show:

 super(arg1, ...);