我有 DynamicObject
、Player
、Enemy
类
public class DynamicObject {
protected static float speed;
}
public class Player extends DynamicObject {
/*some code*/
Player.speed = 100;
}
public class Enemy extends DynamicObject {
/*some code*/
Enemy.speed = 50;
}
speed
值总是被覆盖。当然,我可以在 Player
和 Enemy
中创建新的 speed
变量,但是现有的 DynamicObject
类就毫无意义了。我想在每个类(class)上使用不同的 speed
值。当前类的所有对象将具有相同的速度
。我应该如何以正确的方式制作它?
最佳答案
speed
变量不应该是static
。否则它不会绑定(bind)到 DynamicObject
类的任何实例,也不会绑定(bind)到它的任何子类实例。
如果你想为每个子类设置不同的 speed
值,你可以这样做:
public class DynamicObject {
protected float speed;
public DynamicObject(float speed) {
this.speed = speed;
}
public float getSpeed() {
return this.speed;
}
}
public class Player extends DynamicObject {
/*some code*/
public Player(float speed) {
super(speed);
}
}
public class Enemy extends DynamicObject {
/*some code*/
public Enemy(float speed) {
super(speed);
}
}
关于java - 扩展类和静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22126403/