这是一个没有参数构造函数的代码
public class misc2 {
misc2(String x){
}
public static void main(String ... args){
misc2 m = new misc2(); // this throws a compilation error
}
}
我的问题是,当 Java 自动创建默认构造函数(在本例中为 Misc2(){...})时,为什么它会引发编译错误。如果尚未定义。
另外,现在如果我添加一个无参数构造函数misc2(){...},它实际上是由JVM 调用的。是默认参数还是无参数。第二个问题是,如果Java已经创建了一个没有参数的默认构造函数,那么在Java程序中某些情况下还需要显式创建构造函数吗?
最佳答案
当且仅当未提供其他显式构造函数时,Java 才会创建默认构造函数。
来自文档:
您不必为您的类提供任何构造函数,但执行此操作时必须小心。编译器会自动为任何没有构造函数的类提供无参数的默认构造函数。
参见:https://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html
关于java - 没有参数和默认构造函数混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38487314/