是否有任何可行的解決方案,以在抽象的私有構造class..please建議私有構造
public abstract class BaseClass
{
private String member;
private BaseClass(String member)
{
this.member = member;
}
... abstract methods...
}
是否有任何可行的解決方案,以在抽象的私有構造class..please建議私有構造
public abstract class BaseClass
{
private String member;
private BaseClass(String member)
{
this.member = member;
}
... abstract methods...
}
抽象類可以有一個私有構造函數。但是那個階級不能被另一個階級擴展。而不是在抽象類中添加靜態內部類並擴展該抽象類。
abstract class Base{
public abstract void set();
private Base(){
System.out.println("Private Constructor!");
}
static class Derived extends Base{
public void set(){
System.out.println("set() method implemented!");
}
}
public static void main(String[] args){
new Base.Derived().set();
}
}
這違背了抽象類的目的:
抽象類必須被分類以供使用。
如果某個方法是私有的,那麼該子類無法看到它。
∴有效無法到達。
所以,沒有。
編輯 @yshavit已經找到了這個邏輯,這是非常真實的一個洞 - 看看他的評論(這可能應該是一個問題的答案?)。
那麼,你試過嗎? – 2012-08-11 04:30:26
這是http://stackoverflow.com/questions/3334380/why-private-access-specifier-in-an-abstract-class-in-java-even-though-we-cannot的副本,並得到很好的回答那裏。 – gview 2012-08-11 04:38:53