我正在寻找一些开源Java项目来进入Java,并注意到它们中有很多都有某种"常量"接口.
例如,processing.org有一个名为PConstants.java的接口,大多数其他核心类实现了这个接口.界面充满了静态成员.有这种方法的理由,还是这被认为是不好的做法?为什么不在有意义的地方使用枚举,或者使用静态类?
我发现使用接口允许某种伪"全局变量"很奇怪.
public interface PConstants {
// LOTS OF static fields...
static public final int SHINE = 31;
// emissive (by default kept black)
static public final int ER = 32;
static public final int EG = 33;
static public final int EB = 34;
// has this vertex been lit yet
static public final int BEEN_LIT = 35;
static public final int VERTEX_FIELD_COUNT = 36;
// renderers known to processing.core
static final …Run Code Online (Sandbox Code Playgroud) 我实际上要问的是,如果我希望所有实现都具有公共(但不是静态!)属性,是否有比使用抽象类更好的方法。
例如:
public interface MyInterface{
public int someProperty = 0;
public void doSomething();
}
public ClassA implements MyInterface{
@Override
public void doSomething(){...}
}
public ClassB implements MyInterface{
@Override
public void doSomething(){...}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法创建这两个实现的实例并初始化接口的 someProperty 成员?
或者我必须使用抽象类而不是接口来为每个实现实例初始化这个成员?
java ×2