嵌套靜態類B的受保護的構造考慮下面的代碼:能見度包含在抽象類A
public abstract class AbstractA
{
public static final class B
{
protected B(){}
}
}
// a class (in another package) that inherits from AbstractA
public class C extends AbstractA
{
B[] arrayOfB=new B[10];
for(byte i=0; i<=arrayOfB.length; i++)
{
arrayOfB[i]=new B();
}
}
在類別C1可以定義arrayOfB因爲B類是靜態&公開,但我不能實例化的這個對象。 Eclipse的說:構造函數A.B()不可見
如果C類與A類在同一個包中,我可以實例化它。 如何保持構造函數B()受保護並仍然創建一個知道類C繼承自A的對象?
那是所謂的「靜態工廠」設計模式嗎? – user3111783
@ user3111783「工廠方法」我猜 – kan