Страницы

Поиск по вопросам

понедельник, 8 апреля 2019 г.

Обращение к методу, который не реализован в интерфейсе

Есть интерфейс:
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 или ввести новый, в котором будут предоставляться координаты животного.

Комментариев нет:

Отправить комментарий