在 java 中,如果我们为一个类键入一个带参数的构造函数,我们就不能调用它的默认无参数构造函数。我知道这是因为如果我们键入任何带参数的构造函数,编译器不会提供默认的无参数构造函数。但是我的问题是这样设计的原因是什么?
最佳答案
如果您为构造函数提供参数,则假定该对象将以有效状态创建。
如果默认公开一个无参数构造函数(并且类的创建者没有采取防御措施),某人可能会无意中创建一个无效对象——一个没有足够信息的对象是正确的。
通过强制我们提供一个无参数的构造函数,Java 强制我们明确表明可以创建一个没有那些初始值/状态的对象。
简而言之:Java 试图将我们从 self 中拯救出来,因为我们草率而健忘。
关于java - 为什么在 java 中键入带参数的构造函数时不提供默认构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8589997/