看看下面的代码。似乎有更简单的方法可以做到这一点。
对于我要添加到系统的每个新Class
功能,我必须执行以下操作才能设置类变量(静态 -> maxPlayers)?
抽象静态变量之类的东西?
protected abstract class Class{
protected abstract int getMaxPlayers();
public class Soldier extends Class{
public static final int maxPlayers = 4;
@Override
protected int getMaxPlayers() {
return Soldier.maxPlayers;
}
}
public class Demoman extends Class{
public static final int maxPlayers = 2;
@Override
protected int getMaxPlayers() {
return Demoman.maxPlayers;
}
}
public class Scout extends Class{
public static final int maxPlayers = 4;
@Override
protected int getMaxPlayers() {
return Scout.maxPlayers;
}
}
public class Medic extends Class{
public static final int maxPlayers = 2;
@Override
protected int getMaxPlayers() {
return Medic.maxPlayers;
}
}
}
就像我必须重复这个模板一样:
public static final int maxPlayers = 2;
@Override
protected int getMaxPlayers() {
return Medic.maxPlayers;
}
而且我认为这样做是不正确的。