jdk1.8中,接口中的变量默认是public static final,方法默认是 public abstract,除非是static方法或者默认方法
接口中的属性必须用public static final
接口中不能出现变量,如果有变量,就和接口提供的统一的抽象这种思想是抵触的,所以接口中的属性必然是常量,只能读不能改,这样才能为实现接口的对象提供一个统一的属性。
public: 使接口的实现类可以使用这个常量
static:static修饰就表示它属于类的,随的类的加载而存在的,如果是非static的话,就表示属于对象的,只有建立对象时才 有它,而接口是不能建立对象的,所以接口的常量必须定义为static
final:保证接口定义的常量不能被实现类去修改,如果没有final的话,如果子类可以随意修改,建立这个常量就没有意义了
要变化的东西,就放在你自己的实现中,不能放在接口中去,接口只是对一类事物的属性和行为更高层次的抽象。对修改关闭,对扩展(不同的实现implements)开放,接口是对开闭原则的一种体现。