接口变量在Java中默认为静态且为最终变量,为什么?

接口定义行为的协议,而不是行为的协议。实现接口的类遵守该接口定义的协议。

  • 接口变量是静态的,因为无法单独实例化Java接口。必须在没有实例的静态上下文中分配变量的值。

  • final修饰符确保分配给接口变量的值是无法重新分配的真实常量。换句话说,接口只能声明常量,而不能声明实例变量。

范本:

interface interfaceName{
   //任意数量的最终静态变量
   datatype variableName = value;
   //任意数量的抽象方法声明
   returntype methodName(list of parameters or no parameters);
}