1、Java接口中的字段默认都是静态常量,不管在编码的时候有没有显示的指定static或者final。
如以下接口:
public interface AccessFlag {
public int a = 10;
public static int b = 20;
public final int c = 30;
public static final int d = 40;
}
它编译生成的二进制代码如下:
public abstract interface org.levin.classfilereader.AccessFlag {
public static final int a = 10;
public static final int b = 20;
public static final int c = 30;
public static final int d = 40;
}
2、接口可以用public声明,因此可以在包外被实现
参考:http://www.blogjava.net/DLevin/archive/2011/06/23/352916.html