Java, могу ли я принять интерфейс с иерархией - PullRequest
0 голосов
/ 23 апреля 2019

Подобно тому, как вы можете привести иерархическую цепочку (предположение), я хочу сделать нечто подобное, но с интерфейсами.

Существует родительский класс "A" и несколько дочерних классов«А».Однако подмножество дочерних классов, с которыми я имею дело, реализуют какой-то интерфейс.Однако, не все дочерние классы делают, только те, с которыми я работаю.

Так что сигнатура метода выглядит примерно так:

public void action(A a) {
}

Итак, метод может сделатьчто-то с чем-то типа «А» или его потомком, однако, единственное, что меня интересует, - это реализация одного и того же интерфейса.

Итак, я хочу, чтобы был способ предположить (или приведение?) интерфейса, чтобы я мог вызвать один из методов интерфейса.

Так что-то вроде:

public void action(A a) {
    ((B) a).methodFromB(); // ((Interface) a).methodFromInterface();
}

Однако вместо этого я буду знать интерфейс конкретного объекта, который яработаю с орудиями.

1 Ответ

0 голосов
/ 23 апреля 2019

Оказывается, благодаря Энди Томасу, вы можете просто привести тип интерфейса.

((InterfaceName) objectThatImplInterface).methodFromInterface();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...