Есть интерфейс:
public interface Animal {
void eat();
void sleep();
void go();
}
Есть 2 класса животных (представлен 1):
public class Tiger implements Animal {
private int x; //координаты нахождения
private int y;
public Tiger(int x, int y {
this.x = x;
this.y = y;
}
@Override
public void eat() {}
@Override
public void sleep() {}
@Override
public void go() {}
public int getX() {
return x;
}
public int getY() {
return y;
}
}
И класс Locator
public class Locator {
private int x;
private int y;
public Locator(int x, int y) {
this.x = x;
this.y = y;
}
public void find(Animal animal) {
/**
* Метод сравнивает координаты локатора и координаты животного.
* Если координаты совпадают, выводится сообщение
*/
}
}
Нужно в методе find класса Locator обратиться к animal.getX().
Как это сделать, не изменяя интерфейс и не используя явное приведение типов ((Tiger)animal). И вообще, возможно ли это?
Ответ
Никак. Возможно, стоит расширить интерфейс Animal или ввести новый, в котором будут предоставляться координаты животного.
Комментариев нет:
Отправить комментарий