有人可以解释一下Java中隐式构造函数和显式构造函数之间的区别吗?
答案 0 :(得分:19)
明确表示由程序员完成。 隐式表示由JVM或工具完成,而不是程序员。
例如:
Java将隐式提供默认构造函数。即使程序员没有为构造函数编写代码,他也可以调用默认构造函数。
明确与此相反,即。程序员必须写。
默认constructor
是no arguments requested
的构造函数。在创建实例时会隐式调用它。
如果您自己不调用no-args constructor
,则会隐式调用constructed
,如果该构造函数不存在则无效。需要调用超级构造函数的原因是超类通常具有它期望在private
之后的某个状态,其中可能包含无法在子代中设置的constructor
个变量。类。如果您不调用probably
,则会使对象处于{{1}}无效状态,这可能会导致各种问题