java接口的变量为什么是public static final 的

来源:互联网 发布:lte网络结构优化 编辑:程序博客网 时间:2024/05/18 01:22
首先说明为什么是static的,我是这么理解的:
    
    1. 类是单继承多接口,如果接口的变量不是静态的,当多个接口中有相同的变量时,计算机怎么知道这个变量到底是哪个接口的,特别是当这些接口的变量有默认值的时候,这将如何分辨?
    
    2. 接口是不能实例化的,如果接口中有非静态变量,我们就得必须构造实现类的实例,才能使用接口中的变量。

根据以上两点,接口中的变量必须是static的。

接下来,说明为什么必须是final的:

     现在,我们知道接口的变量必须是static的,也就是在运行过程中,内存里只保留一份数据,那么如果有其他的方法修改了这个接口的静态变量,将会破坏接口的一致性。导致方法之间互相影响。所以,接口的变量必须是final的。

     以上仅仅是我个人理解。
0 0