要想了解Java接口中静态属性的作用,首先要看一下Java接口中属性所具备的特点。
严格地说,Java语言的接口(interface)中只有常量(final)没有变量,即使在定义的时候没有加final修饰符,系统也会自动为其加上public、static、final三个修饰符,也就是公共的、静态的和不变的。为了验证这一点我们可以通过一个实验来看一下:
我采用的是jdk10版本,使用的工具是IDEA。
通过这个实验我们发现,即使我在定义的时候没有为PORT属性加上static和final修饰符,系统也会自动把PORT识别成“静态”的和“不变”的。
接下来,我们再分析一下在接口中定义属性都有哪些作用。
首先,在接口中定义属性的情况并不常见,甚至可以说比较罕见。因为接口是Java语言中的“全抽象”,接口中的方法全部是抽象的,所以我们通常把接口称为“全抽象”,把抽象类称为“半抽象”。因此,可以得出一个非常简单的结论,接口就是用来定义方法的。那么接口中定义属性又有什么意义呢?答案在于常量接口的应用。所谓的常量接口就是接口中没有任何抽象方法的定义,而只定义了一大堆常量。
关于常量应该定义在接口中还是类中,不同开发团队有不同的理解,但是从目前大型软件团队开源出来的代码来看,几乎找不到常量接口的应用,也就是说,常量应该定义在类中而不是接口中,原因是接口中定义的常量容易引起混乱(原因是需要实现一个不必要的接口)。
所以,在接口中定义属性,要慎重!
我使用Java的时间比较久,我也出版过Java编程书籍,目前我会陆续在头条上写一些关于Java编程的文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。
如果有Java编程方面的问题,也可以咨询我。
谢谢!
原创文章,作者:普尔小编,如若转载,请注明出处:http://www.puerpx.cn/pxwd/4312.html