Разница между обобщением и наследованием с подходящим примером. OOAD
Изучение обобщения и наследования приводит меня в замешательство, и то и другое дает то же значение, как если бы что-то наследовалось... но не могу понять фактическую разницу.
2 ответа
Отношение обобщения / специализации реализуется в объектно-ориентированных языках программирования с наследованием.
Некоторые формы обобщения
Иерархия: в случае иерархии общности организованы в древовидную структуру. В корне любого поддерева находятся все атрибуты и поведение, общие для всех потомков этого корня.
Универсальность: в этом случае общность выражается с помощью параметра. Различные специализации отличаются тем, что они предоставляют для параметра. Например, используя универсальность, можно представить общие свойства "стека" посредством обобщения "стека чего угодно", где "что угодно" представляет параметр.
Полиморфизм. Полиморфизм захватывает общность алгоритмов. Полиморфизм позволяет сворачивать вложенную логику (или оператор case) в один случай, в котором различные типы объектов обрабатываются одинаково.
Шаблоны. Шаблон выражает общее решение (ключевые компоненты и взаимосвязи) часто встречающейся проблемы проектирования. Атрибуты и поведение отдельных компонентов определены только частично, что позволяет интерпретировать шаблон и применять его в широком диапазоне ситуаций.
Обобщение - это термин, который мы используем для обозначения абстракции общих свойств в базовом классе в UML.
Когда мы реализуем обобщение на языке программирования, оно называется наследованием.
Таким образом, Обобщение и Наследование одинаковы, терминология просто различается в зависимости от контекста, в котором оно используется.