【发布时间】:2013-08-13 22:27:27
【问题描述】:
查看下面的代码。似乎有更简单的方法。
对于我要添加到系统中的每个新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;
}
而且我认为这样做是不正确的。
【问题讨论】:
-
为什么都是内部类?
-
给你的班级打电话 Class 并不是一个好主意——这个名字已经在使用了...
-
是的。确实如此。它仅用于示例。还是谢谢。
-
请为您的问题提供一个更好(更具描述性)的标题。
-
出于什么目的?您的代码的目的是什么?