一个接口可以有三种类型的成员:
- 常量字段
- 抽象,静态和默认方法
- 静态类型作为嵌套接口和类
一个接口不能有可变的实例和类变量。与类不同,接口不能被实例化。 接口的所有成员都是隐式公开的。
常量字段声明
可以在接口中声明常量字段,如下所示。 它声明一个名为Choices
的接口,它有两个字段的声明:YES
和NO
。 两者都是int
数据类型。
public interface Choices {
public static final int YES = 1
public static final int NO = 2
}
接口中的所有字段都是隐式的public
,static
和final
。Choices
接口可以声明如下,而不改变其含义:
public interface Choices {
int YES = 1
int NO = 2
}
可以使用点形式的形式访问接口中的字段,如下 -
<interface-name>.<field-name>
可以使用Choices.YES
和Choices.NO
访问Choices
接口中的YES
和NO
字段的值。下面的代码演示了如何使用点符号来访问接口的字段。
public class ChoicesTest {
public static void main(String[] args) {
System.out.println("Choices.YES = " + Choices.YES)
System.out.println("Choices.NO = " + Choices.NO)
}
}
接口中的字段总是最终的(final
),无论关键字final
是否在其声明中使用。必须在声明时初始化一个字段。
可以使用编译时或运行时常量表达式来初始化字段。 由于final
字段只赋值一次,因此除了声明之外,不能设置接口字段的值。
以下代码显示了接口的一些有效和无效字段声明:
public interface ValidFields {
int X = 10
int Y = X
double N = X + 10.5
boolean YES = true
boolean NO = false
//Test TEST = new Test()
}
使用接口中字段名称中的所有大写字母表示它们是常量是一种约定。接口的字段总是公共的(public
)。