2
我有以下的抽象類:Java的抽象類常數
public abstract class GameObject {
protected final GameSession session;
protected final int id;
protected Point position;
public GameObject(GameSession session, Point position) {
this.position = position;
this.id = session.getNewId();
this.session = session;
}
public void setPosition(Point position) {
this.position = position;
}
public int getId() {
return id;
}
public Point getPosition() {
return position;
}
每個gameObject
還包含常數WIDTH
和HEIGHT
。我想爲應該使用這些常量的所有遊戲對象添加方法getBar()
。這裏的遊戲對象的示例:
public class Wall extends GameObject {
private static final Logger logger = LogManager.getLogger(Wall.class);
private static final int WIDTH = 32;
private static final int HEIGHT = 32;
public Wall(GameSession session, Point position) {
super(session, position);
logger.info("New Wall id={}, position={}", id, position);
}
而且getbar()
如果它是在Wall
類:
public Bar getBar() {
return new Bar(position, position.getX() + WIDTH, position.getY() + HEIGHT);
}
我應該如何正確地實施GameObject
?問題是我不能初始化裏面的WIDTH
和HEIGHT
,因爲它們在子類中是不同的。
感謝一個全面的答案。 – Russiancold
@Russiancold:查看備選更新 – rkosegi