Я, конечно, не глубокий знаток ОО программирования, но мне кажется, что тут есть некоторое смешивание. Наследование интерфейсов безусловно есть. Однако класс не наследует интерфейсы, а реализует их. Таким образом некий интерфейс (ЛетатьПолзать) множественно наследует интерфейсы Летать и Ползать, а класс Дракон реализует интерфейс ЛетатьПолзать. Учитывая варианты ответа, скорее всего нужно выбрать множественное наследование Но наличие интерфейсов тут сбивает, потому и возникла такая дискуссия (на пустом вообщем месте)
насколько я понимаю, OOP - это умение записать в коде то, что является выходом OOA/OOD.
или другой вариант: OOP включает в себя OOA, OOD, и умение закодить. не знаю, какой вариант будет более точный.
в контексте OOA/OOD нет принципиального различия между наследованием интерфейса и наследованием класса. тут не уверен, поправте, если не прав.
при реализации и на Java, и на C++ не обязательно создавать сущность "ЛетатьПолзать"(если нет в этом необходимости).
выглядеть оно может, например, так (Java):
class Dragon : extends Animal, impliments Flyable, Crowable;
как по мне, это множественное наследование от 3 сущностей.
поэтому наличие интерфейсов меня тут не сбивает.
и всеравно не понимаю почему только множественное наследование. точнее почему на данный вопрос надо думать в русле того, что существуют сущности Flyable и Crowable. Почему нельзя додумывать в сторону композиции:
класс Крылья - позволяет летать.
класс Ноги - позволяет ползать
класс Дракон
{
Крылья
Ноги
}
Амфибия умеет ездить как автомобиль и плавать как катер (судно)
не знаю, все равно композиция возможна.
по отдельности оно звучит не плохо:
Амфибия особый тип автомобиля умеющего плавать как катер
Амфибия особый тип катера умеющего ездить по дорогам
а если сказать, амфибия является как автомобилем, так и катером, то мне это не очень нравится.
т.е. по моему, все равно необходимы интерфейсы "УмеетПлавать", "УмеетЕздить".
оффтопик:
я бы лучше вместо этого одного вопроса, добавил бы 3 вопроса предложенных
greesha.
потому что множественное наследование это просто. это наследование больше чем от одной сущности.
а вот термины: наследование, композиция, полиморфизм, необходимо понимать.