我试图拥有一个Race由我的蚂蚁实现为通用的抽象超类,以便我可以访问蚂蚁的“移动速度”等属性。对于不同的种族,我将创建扩展类Race,显然我想赋予每个Race不同的属性。“移动速度”需要以Race某种方式保持静态,这样我就可以通过类而不是对象的实例来访问它们,但它不能是静态的,因为这样对于所有种族来说都是相同的。我需要一种方法来规避这个问题,因为我的整个程序结构都依赖于它。
我不能Race成为 的超类,Ant因为我有Ant类似Drone或 的子类Queen,并且它们应该可供所有种族访问。
public abstract class Race {
public static double speed;
}
public class defaultAnt extends Race {
public static double speed = 2;
}
public abstract class Ant<R extends Race> {
public void move(){
speed = R.speed;
}
}
当我这样尝试时,对于所有种族来说都是一样的,尽管不应该如此。
料青山看我应如是
相关分类