2012-09-29 69 views

回答

0

好吧,抽象類不能被實例化,但這可能不是你正在尋找的......我從來沒有聽說過這種可能。

+0

不,例如在一個樹形結構,只應創建的節點從事務內。使用節點構造函數確實沒有意義,因爲節點在任何事務中都是不可見的,並且不可持續,但可以實例化節點,因爲類必須是「public」,因爲事務實現在另一個包中。 – Johannes

+0

如果需要從單獨的包中實例化,則可以做的事情不多。抱歉。除非有某種方法讓節點成爲受保護的類,並使需要實例化它們的類成爲朋友類。但我不知道這是否真的有可能,並且朋友們開放了其他潛在的問題...... –

+0

謝謝,你知道Java8會有什麼事情嗎?嗯,我正在認真考慮混合Java和Scala ;-) – Johannes

1

化妝構造保護

public class ProtectClass { 

    protected ProtectClass() { 
     // TODO Auto-generated constructor stub 
    } 
} 
+0

這是行不通的。我不是繼承人。假設爲節點實現打包'org.sirix.node',爲事務的API實現打包'org.sirix.access'。然後,在org.sirix.access的完美世界中,節點包應該是可見的,但不能從外部看到。 – Johannes

+0

受保護的構造函數也可以從包中訪問,你不需要繼承!我認爲你必須爲這兩個類使用一個包,並使節點包的構造函數受到保護,並從訪問類中實例化它們。 –