Что такое гибридное наследование в C++? Типы с примерами
Опубликовано: 2021-05-27Мы часто используем термин «наследование» в контексте программирования. Это функция, практикуемая в программировании для наилучшего повторного использования кодов. Если вы вспомните концепцию «IS-A» в ООП (объектно-ориентированном программировании), вы обнаружите, что она основана на функции наследования. Реализация наследования поможет вам реализовать передовые идеи проектов на C++.
Оглавление
Что такое наследование?
В процессе Наследования объекты одного класса приобретают свойства и поведение другого класса. Здесь новый класс является производным от существующего базового класса. Производный класс-член обычно называется дочерним классом и членом базового класса родительского класса. После создания дочернего класса он наследует все свойства и методы родительского класса.
Кроме того, дочерний класс может иметь свои эксклюзивные свойства и методы, предназначенные для определенной цели. Дополнительные функции, добавленные локально к существующему классу, не повлияют на свойства, унаследованные от родительского класса. Таким образом, новый класс будет сочетать в себе черты обоих классов.
Наследование в С++
Часто в реальности программисту необходимо разработать объект, который должен:
1) обладает всеми качествами своего родителя и, кроме того,
2) в некоторых аспектах настойчивость особенная.
Кодирование таких исключительных свойств в основном классе не обязательно может быть практичным и экономичным. В этом случае новый класс получается путем расширения базового класса. Кроме того, получение его от другого класса, обладающего дополнительными качествами. Таким образом, вы можете повторно использовать, расширять или изменять атрибуты и поведение, которые определены в других классах. Таким образом, дочерний класс, производный от нескольких классов, дает объект, который легко поддерживать и портировать. Производный класс является специализированным классом для базового класса.
Технически ключевое слово «расширяет» используется для наследования класса. C++ использует символ двоеточия (" : ") для наследования от класса.
Виды наследства
Использование комбинации наследования и реализации различается в зависимости от цели, для которой создаются классы. В C++ доступны различные типы наследования, перечисленные ниже:
- Одиночное наследование — это когда производный класс наследует свойства и поведение от одного базового класса. Пример: Класс A → Класс B.
- Иерархическое наследование — это когда из одного базового класса создается более одного производного класса. Пример: Класс A → Класс B → Класс C.
- Множественное наследование предназначено для получения класса из нескольких базовых классов. Здесь создаваемые программистами дочерние объекты будут сочетать аспекты характеристик и функций нескольких родительских классов. Эти объекты следуют своей иерархии базовых классов.
- Многоуровневое наследование — это когда дочерний класс является производным от другого производного класса. Эта функция объединяет аспекты нескольких классов и следует их иерархии.
- Гибридное наследование — это гетерогенная функция использования множественного наследования. Здесь дочерний класс является производным от одной или нескольких комбинаций одиночного, иерархического и многоуровневого наследования. Это наследование используется в программах для смешивания различных типов наследования; например, при смешивании одного наследования с несколькими наследованиями или, может быть, ситуации, когда несколько наследований смешиваются в рамках одной программы.
Простой пример
Здесь класс B и класс C являются производными от базового класса, класса A.
Иерархическая классификация автомобилей показывает два класса. И «Бензиновые автомобили», и «Электромобили» являются производными от базового класса «Автомобили».
Гибридное наследование в C++
Могут быть ситуации, когда нам нужно применить два или более типа наследования в сочетании для разработки программы. Когда программа включает более одного типа наследования, это называется гибридным наследованием.
Гибридное наследование представляет собой комбинацию простого множественного наследования и иерархического наследования. Обычно при множественном наследовании класс является производным от двух классов, где один из родительских классов также является производным классом, а не базовым классом.
Гибридное наследование в C++ — это наследование, при котором класс является производным от более чем одной формы или комбинации любого наследования. Гибридное наследование в C++ также называется многопутевым наследованием, когда один производный класс может наследовать свойства базового класса по разным путям. Иногда также называется многолучевым наследованием. Например, это может быть достигнуто сочетанием многоуровневого и иерархического наследования.
Короче говоря, гибридное наследование представляет собой комбинацию двух или более типов наследования. Например, реализуя одно- и многоуровневое наследование в одной и той же программе.
Блок-схема гибридного наследования
На диаграмме представлена гибридная комбинация двух наследств; одиночное наследование и множественное наследование. Здесь при одиночном наследовании класс B является производным от класса A. Точно так же при множественном наследовании класс D наследуется от нескольких классов. Здесь класс B и класс C. Итак, сочетание одиночного наследования и множественного наследования образует гибридное наследование.
Гибридное наследование применимо в сценариях, где нам необходимо применить более одного наследования в программе.
Синтаксис гибридного наследования в C++
Типичный синтаксис и семантика гибридного наследования в C++ будут такими, как показано ниже:
Примеры гибридного наследования в C++
Пример 1: одиночное + множественное наследование
Давайте посмотрим, как реализовано одиночное и множественное наследование.
Каждый блок на этой диаграмме представляет класс, а соответствующая стрелка — наследование класса.
Пример 2: одиночное + многоуровневое наследование
Мы также можем реализовать другие типы наследования для создания гибридного наследования.
Рассмотрим пример в реальном времени .
Мы получаем подкласс автомобиля от класса Vehicle. Другой класс характеризует Racing. Когда мы получим окончательный объект как из класса Car, так и из класса Racing, он даст комбинированный результат. Это производное от Ferrari – гоночный автомобиль.
Вот простая программа, иллюстрирующая концепцию гибридного наследования в C++ .
Пример кода
Выход
Изучайте онлайн -курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.
Заключение
Надеюсь, эта статья помогла вам понять концепцию и типы гибридного наследования в C++ . Учащиеся, изучающие компьютерные программы и программы, связанные с вычислительной техникой, могут повысить свои навыки и надежность в технических вопросах, таких как концепции ООП. upGrad предоставляет ресурсы и базу знаний для поощрения таких специалистов к получению опыта в программировании и конкуренции на отраслевом рынке. В upGrad вы также получаете возможность исследовать профессиональные сети и развивать навыки.
Мы надеемся, что у вас будет отличная возможность научиться выполнять эти проекты на C++. Если вы хотите узнать больше и нуждаетесь в наставничестве от отраслевых экспертов, ознакомьтесь с программой Executive PG upGrad & IIIT Banglore в области разработки программного обеспечения с полным стеком .
Что такое наследование в объектно-ориентированном программировании?
Наследование — это механизм повторного использования кода, который помогает моделировать реальный мир. Он расширяет концепцию абстракции данных в ООП. Это процесс, посредством которого класс приобретает свойства другого класса. В ООП фундаментально то, что класс может быть определен только в терминах другого класса. Это связано с концепцией абстракции. Наследование — это механизм, который создает новые классы объектов в той же иерархии классов, что и другие объекты. Главное преимущество наследования — повторное использование кода. Это способ повторного использования кода. Если у вас есть класс, и он выполняет определенную работу, вы можете использовать его и для другой работы. Скажем так, автомобиль и грузовик выполняют одну и ту же работу, поэтому вы можете использовать один и тот же код для их управления.
Каковы 3 области наследования в C++?
Сферы наследования в C++ бывают закрытыми, защищенными и общедоступными. При закрытом наследовании один класс наследуется от другого класса, но доступ к производному классу вне класса невозможен. Эти типы наследования можно использовать только в том случае, если доступ к базовому классу вне класса не предполагается. Защищенное наследование используется, когда доступ к базовому классу не предполагается вне класса, а предназначен для доступа вне класса. Публичное наследование используется, когда доступ к базовому классу предполагается вне класса.
Что такое множественное наследование в C++?
Множественное наследование — это возможность получить класс из более чем одного класса. Эта функция недоступна в C. Это одна из наиболее важных функций C++, поддерживающих объектно-ориентированное программирование. Реализация множественного наследования в C++ основана на концепции классов наследования. Множественное наследование — это механизм, поддерживающий модель объектно-ориентированного программирования, которую можно использовать для решения некоторых проблем, таких как повторное использование поведения и повторное использование кода. Повторное использование кода всегда было проблемой в C++, потому что C++ поддерживает только одиночное наследование. Множественное наследование достигается путем объединения нескольких интерфейсов в объект.