Как один класс может реализовать разные интерфейсы?

Появился такой вопрос. Необходимо создать класс Human в двух вариантах. Первый вариант реализует интерфейс Cavalry, а второй реализует интерфейс Infantry. Экземпляры будут создаваться как: Infantry warrior = new Human / Cavalry warrior = new Human. Единственное различие между этими классами заключается в следующем: Human с типом Cavalry будет содержать в себе вложенный класс Horse, а с типом Infantry соответственно не будет. Вопрос: как это правильно реализовать? Заранее спасибо за советы.


Ответы (1 шт):

Автор решения: wigravy

Здесь Вам стоит обратиться к основам Java. Всё решается простым наследованием. При создании объекта "Human", даём ему дочерний класс "Cavalry" или "Infantry". К тому же это даёт Вам гибкость, например если вы захотите добавить ещё какой то класс, типо "artilleryСrew". Пример:

public class test {
    public static void main(String[] args) {
        Human human = new Cavalry();
        Human human2 = new Infantry();
    }
}

class Human {
}

class Infantry extends Human {

}

class Cavalry extends Human {
    class Horse {

    }
}
→ Ссылка