当类包含用户定义的参数化构造函数时,为什么编译器未提供默认构造函数?

时间:2019-05-03 08:28:45

标签: java default-constructor parameterized-constructor

我是Java的新手,想知道“当类包含用户定义的参数化构造函数时,为什么编译器未提供默认构造函数?”

1 个答案:

答案 0 :(得分:5)

当作者决定不提供任何构造函数时,编译器添加该默认构造函数非常好。 很明显用户并不关心该类的“如何”对象的创建,他接受了“默认”的加入。

但是,一旦作者写下带有参数的构造函数,很明显他就假定他的一个构造函数被使用了。

直接推理:假设您的类具有多个字段,并且用户编写的构造函数将所有字段初始化。编译器生成的默认构造函数应如何处理这些字段?正如评论中指出的那样:将它们保留在null或0处不是一个好主意。

相关问题