因为interface是一个纯抽象类,所以它不能定义实例字段。但是,interface是可以有静态字段的,并且静态字段必须为final类型
public interface Person {public static final int MALE = 1;public static final int FEMALE = 2;}
实际上,因为interface的字段只能是public static final类型,所以我们可以把这些修饰符都去掉,上述代码可以简写为
public interface Person {// 编译器会自动加上public statc final:int MALE = 1;int FEMALE = 2;}
初始化接口中的域
在接口中的域不能是空final,但可以被非常量表达式初始化
当然这些域不是接口的一部分,他们的值被存储在接口的静态存储区域内
public interface RandVals {Random RAND = new Random(47);int RANDOM_INT = RAND.nextInt(10);long RANDOM_LONG = RAND.nextLong() * 10;float RANDOM_FLOAT = RAND.nextLong() * 10;double RANDOM_DOUBLE = RAND.nextDouble() * 10;}
