Java接口中的成员变量为什么必须声明为public static final?
2015-04-03 10:28
260 查看
我想对于每个Java程序员来说,接口都不陌生,接口中的方法也经常使用。而接口中的成员变量,就显得用得少一点, 而对于成员变量为什么必须声明为public static final,可能就更不清楚了,而且我觉得大多数不清楚为什么要用 static 和 final。下面我们就来解释一下。
一、为什么要用final?
首先,我们应该明白一个问题。接口,实际上比抽象类更加抽象,它是最高层次的抽象。接口中的所有方法都是抽象方法,不会有任何实现方面的代码,而它的具体实现是要靠实现这个接口的具体类来具体实现的。而且,这个接口中的方法是不可更改的。同样的,接口中的变量也是不可更改的。所以,要声明为final。接口是一种协议,协议是所有实现接口的类都必须遵守的。如果变量不是final,那么每个实现接口的类就可以更改这个变量的值,也就违反了OCP原则。
二、为什么要用static?
至于这个问题,是和Java语言的本身机制有关。我们知道Java不支持多继承,但是一个类可是现实多个接口。我们假设有两个接口A和B,而类C实现了接口A和B。假设,此时,A和B中都有一个变量N,如果N不是static类型的,那么在C中该如何区分N到底是A的还是B的呢?而,如果是static类型的,我们可以通过A.N和B.N来区别调用A或者B中的成员变量N。相关文章推荐
- Java接口中的成员变量为什么必须声明为public static final?
- Java接口中的成员变量为什么必须声明为public static final?
- Java接口中的成员变量为什么必须是public static final?
- Java接口中的成员变量为什么必须是public static final?
- Java接口中的成员变量为什么必须是public static final?
- Java接口中的成员变量为什么必须是public static final?
- Java接口中的成员变量为什么必须是public static final?
- 为什么接口要规定成员变量必须是public static final的呢?
- 为什么接口要规定成员变量必须是public static final的呢?(转)
- 为什么接口里的成员变量必须是public static final的?
- JAVA interface 声明的interface variable (接口变量,也可称成员变量)是public static final
- 为什么要把接口中的成员变量定义为public static final
- 接口里定义的成员变量必须是public static final类型
- 为什么接口中的成员变量非得是public static final?
- 为什么接口中的成员变量非得是public static final?
- java接口的变量为什么是public static final 的
- 为什么接口中的成员变量非得是public static final的呢?
- 解析面试题-接口中的成员变量为什么要定义成public static final
- 为什么接口中的成员变量非得是public static final的呢?
- 为什么java接口中的成员变量必须被static关键字和final关键字修饰