在Java中,如果程序中没有显示的给出构造方法,系统会自动提供一个无参的构造方法。
但是,如果程序中给出构造方法,不论给出的构造方法是否带有参数,系统都不在提供无参的构造方法。
class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
...
}
public class Test{
public static void main(String[] args) {
Person A = new Person("Sam", 11);
Person B = new Person();
}
}
在main()中,Person B = new Person()在编译过程中会报错“The constructor Person() is undefined”。这就是因为程序中已经给出带参数的构造方法,却没有给出无参的构造方法,而此时系统不会再自动给出无参构造方法,导致报错。
因此,如果我们还想使用无参构造方法,就必须自己给出。
最好的方法是在代码中永远都给出无参的构造方法。