-1

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

4

1 回答 1

5

当作者决定不提供任何构造函数时,编译器添加该默认构造函数是完全可以的。显然,用户并不关心该类的“如何”对象是如何创建的,他接受“默认”启动。

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

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

于 2019-05-03T08:33:41.613 回答