我正在开发带有参数的静态实用程序类的程序/游戏。
class ParamsGeneral {
public static final int H_FACTOR = 100;
public static int MAX_SCORE = 1000;
...
}
那么我需要在某些特定情况下覆盖此值,例如在分数有限的地图上玩。所以我做了以下事情:
class ParamsLimited extends ParamsGeneral {
public static int MAX_SCORE = 500;
// other params stay same
}
预期用途如下:
class Player {
ParamsGeneral par;
public Player() {
if(onLimitedMap()){
par = new ParamLimited();
}
}
public boolean isWinner() {
if(this.score == par.MAX_SCORE) {
return true;
}
return false;
}
}
我还没有实际测试过这段代码,因为 IDE 抱怨通过实例调用静态字段以及字段隐藏。我清楚地看到这段代码很臭,那么有没有办法实现这一点,还是我必须分别编写每个参数类?
PS:我知道我应该使默认类抽象并使用getter,我只是好奇是否有办法使这些值可以静态访问。