У меня есть класс GameObject
:объекты переопределяют друг друга
public class GameObject{
private Coordinate coordinates;
public GameObject(){
coordinates = new Coordinate();
}
public void setCoordinates(int x, int y){
coordinates.x = x;
coordinates.y = y;
}
//More methods here
}
public class Coordinate{
public int x, y;
public Coordinate(){
}
public Coordinate(int x, int y){
this.x = x;
this.y = y;
}
public void setCoordinate(int x, int y){
this.x = x;
this.y = y;
}
И два класса Champion
и Spell
:
public class Spell extends GameObject{
//Some methods
}
public class Champion extends GameObject{
//Some methods
public Spell fireBall = new Spell();
}
И в моем main
классе:
Champion character = new Champion();
Если Я ll character.setCoordinates(200, 300);
(только случайные числа), символ переходит к этим точным координатам. Но Spell fireBall
также относится к (200, 300)
. Таким образом, coordinates
в Spell
застрахованы setCoordinates(int x, int y)
, позвоните по номеру character
. Как это возможно?
TL; DR - два класса от GameObject
, Spell extends GameObject
и Champion extends GameObject
, переопределить Афоризм coordinates
. Зачем?
Для полного исходного кода:
GameObject.java
Spell.java
Champion.java
Coordinate.java
Потому что есть только один экземпляр координат? –
Где вы создаете экземпляр '' координат''? – nrainer
Являются ли корригаторы статическими переменными? – Alan