在我的編碼中,我使用Singleton
類與Singleton Design Pattern
。問題是爲什麼它的子類不允許使用默認構造函數?Singleton設計模式及其子類的默認構造函數
我得到編譯時錯誤:
Implicit super constructor Singleton() is not visible. Must explicitly invoke another constructor
Singleton.java
public class Singleton {
private static Singleton singleton;
private Singleton() {
System.out.println("I am user class");
}
public static Singleton getInstance() {
if(singleton == null) {
singleton = new Singleton();
}
return singleton;
}
}
SubClass.java
public class SubClass extends Singleton {
public SubClass(){
System.out.println("I am sub class");
}
}
如果你繼承一個單例類,它不再是單例類。你這樣做是錯的。 –
我只想知道.. – CycDemo
您無法創建編譯子類的原因是因爲單例設計模式故意使其無法繼承子類。這就是隻有私人構造函數。 –