爲什麼接口不能聲明爲靜態?Java - 接口
回答
首先,因爲它沒有意義。靜態接口如何與非靜態接口不同?
第二,他們可以:
public class SomeClass {
static interface StaticInterface {
}
}
認爲像藍圖的接口。這沒什麼具體的。只要堅持(繼承)接口,就能實現一個類必須實現的藍圖。 (iirc)本身沒有「靜態」類的概念,即「靜態」不是類聲明中的關鍵字,就像它在C#中一樣。相反,靜態類是隻由靜態成員和方法組成的類。
如您所知,靜態成員和靜態方法屬於類,而不屬於實例。
由於接口只是一個藍圖,而不是具體的,所以「靜態」接口是沒有意義的。
對此的一個警告是內部類。
在一個類聲明中,你可以定義一個靜態的接口,但我認爲它什麼都不做。
如果你指的是接口本身:因爲沒有真正有用的東西,你可以用static interface
意味着如果你的意思接口方法:因爲在Java中,靜態方法是一類的屬性,不能被覆蓋或多態地調用。
Actualy,我看到在接口某種意義上無法實現(特別是之前在Java 5中引入枚舉):
public static (or better final?) interface Colors {
public final int RED = 1;
public final int GREEN = 2;
...
}
如果有人知道爲什麼這些事情不應該這樣做(假設我們仍然在java_1.4中),請發表評論。
我認爲接口更多的是行爲而不是數據。如果沒有枚舉,我會將這個(靜態)數據移動到一個類中。 – spa 2010-03-21 10:12:22
這就是「恆定接口反模式」。 – whiskeysierra 2010-03-21 10:32:15
這實際上被稱爲常量接口反模式(請參閱Wikipedia以供參考)。另一種方法是使用具體類(私有構造函數)。 – helpermethod 2010-03-21 10:35:11
- 1. Java-接口使用接口
- 2. java中的接口接口
- 3. Java REST接口
- 4. Matlab - Java接口
- 5. java。 eventhandler接口
- 6. 帶串口的Java接口
- 7. Java - 接口,實例化一個接口?
- 8. Java日誌接口
- 9. 一次Java接口
- 10. 解釋Java接口?
- 11. Java接口故障
- 12. 使用Java接口
- 13. IDeepCopy接口的Java
- 14. Java Stacks接口:IndexOutOfBounds
- 15. java中的接口
- 16. 接口java和voip
- 17. 的Java API接口
- 18. Java類接口類
- 19. 設置接口Java
- 20. Java - 索引接口?
- 21. 接口:php vs java
- 22. Java實現接口
- 23. Java接口問題
- 24. 接口在Java中
- 25. Java接口實現
- 26. 接口列表 - java
- 27. 列表接口 - Java
- 28. Java接口成員
- 29. Java接口繼承
- 30. 困惑JAVA接口
+1好解釋。但是,「我認爲它什麼都不做」是什麼意思? – helpermethod 2010-03-21 10:32:04