在Java tutorial "Defining an Interface",它說Java教程說,我可以有一個包專用接口,但我不能
如果不指定該接口是
public
,你的界面將只能訪問在與接口相同的包中定義的類。
然而,這
interface PPInterface {
void foo();
void bar();
}
class NewClass implements PPInterface {
void foo() {}
void bar() {}
}
在NewClass
產生是因爲我「嘗試分配較弱的訪問權限編譯器錯誤;是公開的「。所以文檔是錯誤的,或者我做錯了什麼,或者我誤解了文檔?
我想我不需要使用接口 - 我喜歡它,因爲它保持了很好的組織。
確實......但我不想修復它..我希望他們是封裝私有的。文檔很清楚你可以這樣做,所以文檔是錯誤的?或者這意味着只有包中的對象可以實現接口,但方法仍然是公共的? (我想這就是答案) – Pete 2011-01-26 05:36:11
@ Pete-我認爲這裏有兩個單獨的問題。通過保留接口package-private,唯一可以引用該接口的類必須位於同一個包中。但是,由該接口定義的方法是隱式公開的,因此任何實現該接口的類都必須具有標記爲private的那些特定函數。所以不,文檔沒有錯誤 - 只有兩個獨立的可見性級別。 – templatetypedef 2011-01-26 05:38:19