Java接口中不允许定义变量!原因:
Java接口的本质就是提供统一的协议,实际上就是一个规范、标准。
它是公共类的,静态的,最终的常量,相当于全局变量。以此题为例,如果接口A中有一个public访问权限的变量 .按照java语义来讲,我们大可不必实现接口就能访问到变量X,通过A.x=XX;就可以改变接口中变量x的值。如果此值改变,那么实现接口A的所有对象也都会拥有这一改变后X的值,简单的说就是你一个地方改了所有的地方都改了。
所以接口中不能出现变量,如果有变量,就和接口提供的统一的抽象这种思想是抵触的,所以接口中的属性必然是常量,只能读不能改,这样才能为实现接口的对象提供统一的属性。
最后的扩展,就是说你认为要变化的东西,就放在你自己的实现中,不能放在接口中,接口只是对一类事物的属性和行为更高层次的抽象对修改关闭,对扩展(不同的实现 implements)开放,接口是对开闭原则的一种体现。
此题的精华就在于此,共同学习! |