为什么带有arg的构造函数未定义默认构造函数?
问题描述:
考虑-
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
但是在构造函数为arg 之后,例如 public Class_A(int a){...}
添加到 Class_A
中,默认构造函数成为-
But After constructor with arg like public Class_A (int a){...}
is added to Class_A
, the default constructor become to be -
Class_A a = new Class_A(); // The constructor Class_A() is undefined
那迫使我添加 public Class_A(){/ *什么都不做* /}
到 Class_A
中。
每个类都有默认构造函数,为什么默认构造函数和带有的构造函数不能同时存在于同一 func中()
和 func(int a)
是?
Since each class has default constructor , why doesn't both default constructor and constructor with arg can exist together just same func()
and func(int a)
are ?
答
除非您定义了自己的构造函数,否则它具有默认构造函数,在这种情况下,您需要重新定义默认构造函数
it has default constructor unless you define your own constructor, in this case you need to re define default constructor