在Java中,接口(interface)的所有成员变量默认是public static final,也只能是public static final。
所有的方法默认是public,也只能是public。
注:接口中的方法都是抽象方法,但不需要写abstract。
即下面两段代码是等效的:
public interface T { public static final int i; public void M() { } } public interface T { int i; public void M() { } }
至于成员变量为什么是static final,则是为了解决C++中多继承存在的问题,比如多个父类中可能存在相同的成员变量,子类调用的时候会出很多问题,所以接口干脆把成员变量都声明为static,这个变量就只会在Data segment中存在一份,而且final变量不允许修改,防止了问题的出现。
时间: 2024-10-29 00:29:45