考虑 -
public class Class_A {
public void func() {...}
public void func(int a){...}
所有三个 -
Class_A a = new Class_A(); // legal
a.func(); // legal
a.func(1); // legal
但是在<{1}}添加 之后的 构造函数后,默认构造函数将成为 -
public Class_A (int a){...}
这迫使我将Class_A
添加到Class_A a = new Class_A(); // The constructor Class_A() is undefined
。
由于每个类都有默认构造函数,为什么默认构造函数和构造函数与arg 不能同时存在{{1 }和public Class_A() {/*Do Nothing*/}
是?
答案 0 :(得分:2)
它有默认构造函数,除非你定义自己的构造函数,在这种情况下你需要重新定义默认构造函数
答案 1 :(得分:2)
答案 2 :(得分:1)
反过来说。
如果您没有任何构造函数,则默认情况下会获得no-arg。
答案 3 :(得分:0)
名称“默认构造函数”表示当您不自己提供时,它会被提供。只要您提供自己的构造函数,编译器就不会为您生成默认构造函数。
注意不要将默认构造函数与no-arg构造函数混淆。这是完全不同的两件事。