3 回答

TA貢獻2011條經(jīng)驗 獲得超2個贊
您的代碼非常好。根本不需要默認(rèn)構(gòu)造函數(shù)。您甚至可以將所有構(gòu)造函數(shù)設(shè)為私有,這樣您就無法訪問任何構(gòu)造函數(shù):
public class PrivateClassTest{ // Default constructor that is not accessible by others private PrivateClassTest() { } }

TA貢獻1847條經(jīng)驗 獲得超11個贊
構(gòu)造函數(shù)用于初始化對象。換句話說,構(gòu)造函數(shù)為對象提供內(nèi)存。如果不初始化一個對象,我們就不能使用它的屬性。
但是在 Java 中不需要定義或聲明默認(rèn)構(gòu)造函數(shù)。如果我們沒有聲明或定義它,編譯器會在程序中隱式添加一個默認(rèn)構(gòu)造函數(shù)。

TA貢獻1887條經(jīng)驗 獲得超5個贊
當(dāng)我們在項目結(jié)構(gòu)中實現(xiàn)繼承時,我們需要默認(rèn)構(gòu)造函數(shù)。
例子:
Class Apple{
Apple(){}
Apple(String a){
System.out.pritnln(a);
}
}
Class Banana extends Apple{
Banana(){}
public static void main(String[] args){
Apple("Eaten");
}
}
在上述場景中,如果您不為類聲明任何默認(rèn)構(gòu)造函數(shù),Apple那么它將拋出錯誤:
Implicit super constructor Apple() is undefined for default constructor. Must define an explicit constructor
因為類Banana總是會嘗試調(diào)用未參數(shù)化的超級構(gòu)造函數(shù),如果您已經(jīng)聲明了一個參數(shù)化構(gòu)造函數(shù),那么您必須需要聲明默認(rèn)構(gòu)造函數(shù)。
添加回答
舉報