package interface_play;
interface check
{
int lab=20;
void show();
void upgrade();
}
比如这里的lab后面实现这个接口的时候,lab的值也会为0!那接口的赋值有何意义?
interface check
{
int lab=20;
void show();
void upgrade();
}
比如这里的lab后面实现这个接口的时候,lab的值也会为0!那接口的赋值有何意义?
package csdn.javase.interfaceEx.exe1;
/**
* constants in interface
* @author supercodingman
* @version 1.0
*
*/
public interface Check {
static final int LAB = 20;//默认为static final的,而且变量习惯用大写
public void show(); //默认为public 的方法
public void upgrade();
}package csdn.javase.interfaceEx.exe1;
/**
* constants in interface
* @author supercodingman
* @version 1.0
*
*/
public class TestCheck implements Check{
public static void main(String [] args){
System.out.println(TestCheck.LAB);
}
public void show(){}
public void upgrade(){}
}
输出:20至于为什么接口需要有常量,我个人理解为(个人哦,呵呵):
1、在JavaSE5之前是没有枚举的,这样的情况下可以通过接口来定义多个常量,使得使用了这个接口的类都必须遵循这些常量;
2、JavaSE5之后有了枚举了,所以一般不需要用接口来定义常量。但是,虽然接口是没有方法实现的,但是接口内部可以定义内部类,而内部类可以使用外层接口的域,所以这样的话也可以为内部类提供常量;
3、期待高人更完美的答案。^_^
其目的是为了存储一些可能会用到的常量.
你说lab的值为0,应该是你定义了同名的变量.