我知道Java中所有訪問修飾符之間的區別。然而,有人問我一個非常有趣的問題,我試圖找到答案:在Java中,private
接口和public
接口之間有什麼區別,特別是它如何用作類成員?任何幫助將不勝感激。Java中的公共和私人接口有什麼區別
1
A
回答
2
我相信大家都知道使用public interface
,所以我在這裏提到點private/protected interface
這裏。
Interfaces
可以是類定義的成員,可以在那裏聲明爲private
或protected
。
public class Test {
private interface Sortable {
}
protected interface Searchable {
}
}
public class PrivateInterface {
private interface InnerInterface {
void f();
}
private class InnerClass1 implements InnerInterface {
public void f() {
System.out.println("From InnerClass1");
}
}
private class InnerClass2 implements InnerInterface {
public void f() {
System.out.println("From InnerClass2");
}
}
public static void main(String[] args) {
PrivateInterface pi = new PrivateInterface();
pi.new InnerClass1().f();
pi.new InnerClass2().f();
}
}
/* Output:
From InnerClass1
From InnerClass2
*/
它的界面本身可以是包私有的,而不是方法 在裏面。您可以定義一個只能在其定義的包中使用(按名稱) 的接口,但其方法是公開的,如 所有接口方法。如果一個類實現了該接口,它定義的方法必須是公共的。這裏最關鍵的是它的接口類型是 ,在包之外是不可見的,而不是 方法。
0
接口上的public
,private
,並protected
訪問修飾符意味着他們的意思是在一個類同樣的事情。我通常會在嵌套在類中的接口上看到使用這些修飾符。喜歡的東西this:
//: interfaces/RandomWords.java
// Implementing an interface to conform to a method.
package interfaces;
public class PrivateInterface {
private interface InnerInterface {
void f();
}
private class InnerClass1 implements InnerInterface {
public void f() {
System.out.println("From InnerClass1");
}
}
private class InnerClass2 implements InnerInterface {
public void f() {
System.out.println("From InnerClass2");
}
}
public static void main(String[] args) {
PrivateInterface pi = new PrivateInterface();
pi.new InnerClass1().f();
pi.new InnerClass2().f();
}
}
0
接口的聲明可能包括這些訪問修飾符:
public protected private abstract static strictfp
市民:如果接口類型聲明爲public,那麼就可以通過任何代碼訪問。
protected/private: protected和private的訪問修飾符僅適用於直接包含的類聲明中的成員接口。 A member interface
是一個接口,其聲明直接包含在另一個類或接口聲明中。
static:訪問修飾符static
僅適用於成員接口,而不適用於頂層接口。
摘要:每個接口都是隱含的abstract
。此修飾符已過時,不應在新程序中使用 。
strictfp:的strictfp
修改器的效果是使接口聲明中的所有float或double表達式 是明確FP-strict。
相關問題
- 1. 私人和公共職能有什麼區別?
- 2. 公共和私人意圖有什麼區別
- 3. 公共和私有變量有什麼區別
- 4. BigCommerce上的私人應用和公共應用有什麼區別?
- 5. 接口中的公共方法和抽象方法有什麼區別?
- 6. 私人與公共港口
- 7. 公共靜態,公共和靜態方法有什麼區別?
- 8. 在D中,私人進口和正常進口之間有什麼區別?
- 9. 私有云和公有云有什麼區別?
- 10. 公共/私人
- 11. 與公共,私人和受保護區別
- 12. Java的密鑰對 - 私人 - 公共 - 我只有私人
- 13. IComparable和IEquatable接口有什麼區別?
- 14. 共享公式和數組公式有什麼區別?
- 15. 什麼是公共接口?
- 16. 私人和公共財產
- 17. 私人和公共職能
- 18. 私人和公共變量
- 19. Java中Collection和Set接口有什麼區別?
- 20. 爲什麼我們分別使用公共和私有變量
- 21. 叉公共倉庫到私人和接受公共提交
- 22. 發佈的和公共的方法/屬性有什麼區別?
- 23. 公共和私有變量之間的區別
- 24. 保持一些網絡服務的私人和公共別人
- 25. 老實說,公共變量和公共屬性訪問器有什麼區別?
- 26. MySQL中的套接字和端口連接有什麼區別?
- 27. 內部和私人之間有什麼區別
- 28. 私人二傳手和只讀財產有什麼區別?
- 29. C#中私人和公共訪問修飾符之間的區別?
- 30. Java測試(公共,私有)
它類似於一個'private'和'public'類之間的差別。 – arshajii
類似是什麼意思? – blackpanther
[此鏈接](http://www.objectmentor.com/resources/articles/privateInterface.pdf)可能非常有用。 – Maroun