¿Qué es la herencia híbrida en C++? Sus tipos con ejemplos

Publicado: 2021-05-27

A menudo usamos el término "herencia" en un contexto de programación. Es una función practicada en programación para hacer la mejor reutilización de los códigos. Si recuerda el concepto de "IS-A" en OOP (Programación Orientada a Objetos), encontrará que se basa en la característica de Herencia. La implementación de herencias lo ayudará a obtener ideas de proyectos avanzados en C++.

Tabla de contenido

¿Qué es la herencia?

En el proceso de herencia, los objetos de una clase adquieren las propiedades y el comportamiento de otra clase. Aquí se deriva una nueva clase de la clase base existente. La clase miembro derivada generalmente se denomina clase secundaria y el miembro de la clase base de la clase principal. Una vez que se deriva la clase secundaria, hereda todas las propiedades y métodos de la clase principal.

Además, la clase secundaria puede tener sus propiedades y métodos exclusivos destinados a un propósito. Las características adicionales agregadas localmente a una clase existente no afectarán las propiedades que heredó de la clase principal. Por lo tanto, la nueva clase tendrá características combinadas de ambas clases.

Herencia en C++

A menudo, en realidad, un programador necesita desarrollar un objeto que tiene que:
1) poseer todas las cualidades de su padre, y además,
2) en algunos aspectos, la persistencia es especial.

La codificación de tales propiedades excepcionales en la clase principal puede no ser necesariamente práctica y económica. En ese caso, se deriva una nueva clase al extender la clase base. Además, derivándolo de otra clase que tiene cualidades adicionales. De esta manera, puede reutilizar, extender o modificar atributos y comportamientos que están definidos en otras clases. Por lo tanto, la clase secundaria derivada de varias clases proporciona un objeto que es fácil de mantener y portar. La clase derivada es la clase especializada para la clase base.

Técnicamente, la palabra clave "extiende" se usa para heredar una clase. C++ usa el símbolo de dos puntos (“ : ”) para heredar de una clase.

Tipos de Herencias

El uso de una combinación de herencias e implementación difieren con el propósito de que se deriven las clases. Hay diferentes tipos de herencias disponibles en C++, como se indica a continuación:

  • La herencia única es donde una clase derivada hereda propiedades y comportamiento de una única clase base. Ejemplo: Clase A → Clase B.
  • La herencia jerárquica es donde se crea más de una clase derivada a partir de una sola clase base. Ejemplo: Clase A → Clase B → Clase C.
  • La herencia múltiple es para derivar una clase de varias clases base. Aquí, los objetos secundarios que crean los programadores tendrán aspectos combinados de características y funciones de varias clases principales. Estos objetos siguen sus jerarquías de clases base.
  • La herencia multinivel es donde una clase secundaria se deriva de otra clase derivada. Esta característica lleva aspectos combinados de múltiples clases y sigue sus jerarquías.
  • La herencia híbrida es una característica heterogénea del uso de herencias múltiples. Aquí, una clase secundaria se deriva de una o más combinaciones de herencias únicas, jerárquicas y multinivel. Esta herencia se adopta para que los programas mezclen diferentes tipos de herencia; por ejemplo, cuando se mezcla una sola herencia con múltiples herencias o tal vez una situación en la que se mezclan múltiples herencias dentro de un solo programa.

Ejemplo sencillo

Aquí, la Clase B y la Clase C se derivan de la clase base, la Clase A.

Una clasificación jerárquica de Automóviles muestra dos clases. Tanto los "Coches de gasolina" como los "Coches eléctricos" se derivan de la clase base "Coches".

Herencia híbrida en C++

Podría haber situaciones en las que necesitemos aplicar dos o más tipos de herencia combinados para diseñar un programa. Cuando un programa involucra más de un tipo de herencia, se le llama Herencia Híbrida.

La herencia híbrida es una combinación de herencia simple, múltiple y herencia jerárquica. Por lo general, en las herencias múltiples, una clase se deriva de dos clases en las que una de las clases principales también es una clase derivada y no una clase base.

La herencia híbrida en C++ es la herencia en la que una clase se deriva de más de una forma o combinación de cualquier herencia. La herencia híbrida en C++ también se denomina herencia de rutas múltiples, donde una clase derivada puede heredar propiedades de la clase base en diferentes rutas. A veces también se denomina herencia de trayectos múltiples. Por ejemplo, se puede lograr con una combinación de herencia multinivel y jerárquica.

En resumen, la herencia híbrida es una combinación de dos o más tipos de herencia. Por ejemplo, implementando herencias de uno y varios niveles en el mismo programa.

Diagrama de bloques de herencia híbrida

El diagrama representa la combinación híbrida de dos herencias; la herencia única y las herencias múltiples. Aquí, en herencia simple, la clase B se deriva de la clase A. De manera similar, en las herencias múltiples, la Clase D se hereda de varias clases. Aquí la clase B y la clase C. Entonces, una combinación de herencia única y herencia múltiple forma una herencia híbrida.

La herencia híbrida es aplicable en los escenarios en los que se requiere aplicar más de una herencia en un programa.

Sintaxis de herencia híbrida en C++

Una sintaxis y una semántica típicas para la herencia híbrida en C++ seguirán como se ilustra a continuación:

Ejemplos de herencia híbrida en C++

Ejemplo 1: herencia única + múltiple

Veamos cómo se implementan las herencias simple y múltiple.

Cada bloque en este diagrama representa una clase y la flecha correspondiente la herencia de una clase.

Ejemplo 2: herencia única + multinivel

También podemos implementar otros tipos de herencia para constituir herencias híbridas.

Consideremos un ejemplo en tiempo real .

Derivamos una subclase de automóvil de la clase Vehículo. Otra clase caracteriza a Racing. Cuando derivamos una entidad final, tanto de la clase Car como de la clase Racing, dará una salida combinada. Este derivado es Ferrari, el coche de carreras.

Aquí hay un programa simple para ilustrar el concepto de herencia híbrida en C++ .

El código de muestra

La salida

Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Conclusión

Espero que este artículo le haya ayudado a comprender el concepto y los tipos de herencia híbrida en C++ . Los estudiantes en la corriente de programas informáticos y relacionados con la informática pueden mejorar sus habilidades y credibilidad técnica, como los conceptos de programación orientada a objetos. upGrad proporciona recursos y una base de conocimientos para alentar a estos profesionales a adquirir experiencia en programación y competir en el mercado de la industria. En upGrad, también tiene la oportunidad de explorar redes profesionales y desarrollo de habilidades.

Esperamos que tenga una excelente oportunidad de aprendizaje al ejecutar estos proyectos de C++. Si está interesado en obtener más información y necesita la tutoría de expertos de la industria, consulte el programa Executive PG de upGrad & IIIT Banglore en desarrollo de software de pila completa .

¿Qué es la herencia en la programación orientada a objetos?

La herencia es un mecanismo de reutilización de código y ayuda a simular el mundo real. Extiende el concepto de abstracción de datos en OOP. Es el proceso por el cual una clase adquiere las propiedades de otra clase. Es fundamental en OOP que una clase solo se pueda definir en términos de otra clase. Esto se debe al concepto de abstracción. La herencia es un mecanismo que crea nuevas clases de objetos en la misma jerarquía de clases que otros objetos. El principal beneficio de la herencia es la reutilización del código. Es una forma de reutilizar código. Si tiene una clase y hace un trabajo en particular, también puede usarla para otro trabajo. Solo diga que un automóvil y un camión hacen el mismo trabajo, por lo que puede usar el mismo código para conducirlos.

¿Cuáles son los 3 alcances de la herencia en C++?

Los alcances de la herencia en C++ son privados, protegidos y públicos. La herencia privada es donde una clase se hereda de otra clase pero no se puede acceder a la clase derivada fuera de la clase. Estos tipos de herencia solo se pueden usar cuando no se pretende acceder a la clase base fuera de la clase. La herencia protegida se usa cuando no se debe acceder a la clase base fuera de la clase y se debe acceder fuera de la clase. La herencia pública se usa cuando se debe acceder a la clase base fuera de la clase.

¿Qué es la herencia múltiple en C++?

La herencia múltiple es la capacidad de derivar una clase de más de una clase. Esta característica no está disponible en C. Esta es una de las características más importantes de C++ que admite la programación orientada a objetos. La implementación de herencia múltiple en C++ se basa en el concepto de clases de herencia. La herencia múltiple es un mecanismo que admite el modelo de programación orientada a objetos que se puede utilizar para resolver algunos problemas, como la reutilización de comportamiento y la reutilización de código. La reutilización de código siempre ha sido un problema en C++, porque C++ solo admite herencia única. La herencia múltiple se logra combinando múltiples interfaces en un objeto.