Java - 接口

时间:2010-03-21 09:23:10

标签: java

为什么接口不能声明为静态?

4 个答案:

答案 0 :(得分:6)

想象一个像蓝图的界面。这没什么具体的。只是一个类,如果坚持(继承)接口,必须实现的蓝图。

Java(iirc)本身没有“静态”类的概念,即“静态”不是类声明中的关键字,就像它在C#中一样。相反,静态类是一个只由静态成员和方法组成的类。

您可能知道,静态成员和静态方法属于该类,而不属于实例。

由于界面只是一个蓝图而不具体,因此“静态”界面毫无意义。

对此的一个警告是内部阶级。

在类声明中,您可以定义一个静态的接口,但我认为它什么都不做。

答案 1 :(得分:2)

首先,因为它没有意义。静态接口如何与非静态接口不同?

其次,他们可以:

public class SomeClass {
    static interface StaticInterface {
    }
}

答案 2 :(得分:2)

如果你的意思是界面本身:因为没有任何有用的东西,你可以指static interface

如果您指的是接口方法:因为在Java中,静态方法是类的属性,不能以多态方式覆盖或调用。

答案 3 :(得分:0)

Actualy,我在接口中看到了一些无法实现的意义(尤其是在Java 5中引入枚举之前):

public static (or better final?) interface Colors {
   public final int RED = 1;
   public final int GREEN = 2;
   ...
}

如果有人知道为什么不应该这样做(假设我们仍然在java_1.4中),请留下评论。