если он встраивает (наследует) компоненты класса B в дополнение к своим собственным. Потомок
(descendant)- это прямой или непрямой наследник; обратное понятие - предок (ancestor).
Должно быть возможным объявить класс наследником другого класса.
Наследование - одно из центральных понятий ОО-метода; оно оказывает большое влияние на
процесс разработки ПО.
Множественное наследование (Multiple inheritance)
Часто необходимо сочетать различные абстракции.
Класс должен иметь возможность быть наследником нескольких классов.
Конфликты имен при наследовании разрешаются адекватным механизмом.
Дублируемое наследование (Repeated inheritance)
При множественном наследовании возникает ситуация дублируемого наследования (repeated inheritance),
когда некоторый класс многократно становится наследником одного и того же класса, проходя по
разным ветвям наследования:
В этом случае язык должен обеспечить точные правила, определяющие, что происходит с компо-
нентами, наследованными повторно от общего предка (на рисунке - это A). В некоторых случаях
желательно, чтобы компонент из A создавал только один компонент в D (разделение), а в других -
нужно, чтобы он создавал два (дублирование). Разработчики должны обладать гибкими средствами,
позволяющими предписывать одну из возможностей независимо для каждого компонента.
При дублируемом наследовании судьбой компонентов должны управлять точно определенные пра-
вила, позволяющие разработчикам выбирать для каждого такого компонента разделение, либо дуб-
лирование.