为什么接口不能声明为静态?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