隐式构造函数和显式构造函数之间有什么区别?

时间:2014-06-03 11:05:03

标签: java

有人可以解释一下Java中隐式构造函数和显式构造函数之间的区别吗?

1 个答案:

答案 0 :(得分:19)

明确表示由程序员完成。 隐式表示由JVM或工具完成,而不是程序员。

例如:

  

Java将隐式提供默认构造函数。即使程序员没有为构造函数编写代码,他也可以调用默认构造函数。

     

明确与此相反,即。程序员必须写。

默认constructorno arguments requested的构造函数。在创建实例时会隐式调用它。

如果您自己不调用no-args constructor,则会隐式调用constructed,如果该构造函数不存在则无效。需要调用超级构造函数的原因是超类通常具有它期望在private之后的某个状态,其中可能包含无法在子代中设置的constructor个变量。类。如果您不调用probably,则会使对象处于{{1}}无效状态,这可能会导致各种问题