¿Qué significa herencia múltiple?

La herencia múltiple, cuando se habla de lenguajes de programación orientada a objetos (OOP), es un término que se refiere a una clase que hereda la funcionalidad de más de una clase principal. El término no se puede comprender completamente sin comprender qué es una clase. Una definición muy breve de una clase es un conjunto de instrucciones de programación o código en un lenguaje de programación orientada a objetos que describe y es la esencia de una entidad. Las clases definen todas las propiedades de una entidad y contienen todos los métodos necesarios para manipular esas propiedades.

Dependiendo del programa que se esté codificando, es posible que sea necesario escribir muchas clases que tengan cosas en común pero que sigan siendo entidades distintas. Aquí es donde entra en juego la herencia múltiple. Por ejemplo, los avances tecnológicos que permitirían la construcción de un submarino que pudiera volar como un avión o un avión que pudiera sumergirse como un submarino producirían un producto híbrido. Ese híbrido tendría algunas de las mismas propiedades que tiene un avión y algunas de las propiedades de un submarino, pero sería un producto o entidad única. La herencia múltiple permitiría fácilmente que el híbrido heredara la funcionalidad de una clase de avión y la funcionalidad de una clase de submarino al mismo tiempo sin copiar el código.

Otra forma de explicar la herencia múltiple es decir que permite que más de una clase actúe como base para otras clases. Hay ventajas en el uso de herencia múltiple en lugar de simplemente copiar código de una o más clases a otra. Los errores en los programas suelen tardar en descubrirse, pero cuando se descubren, es necesario corregirlos lo antes posible. Si el código que contiene errores se copia en varias clases, los programadores deben aplicar la misma corrección a cada copia del código. Sin embargo, cuando se emplea la herencia múltiple, él o ella tendría que trabajar con el código de solo la clase original de la que todas las subclases heredan la funcionalidad.

No todos los lenguajes de programación admiten herencia múltiple, incluso si admiten la orientación a objetos. Se puede afirmar que algunas versiones de algunos lenguajes lo admiten cuando en realidad solo admiten la herencia de dos clases. Las clases de las que otras clases heredan la funcionalidad a menudo se denominan clases «principales» o «superclases», y las clases que heredan se denominan clases «secundarias» o «subclases». Se recomienda encarecidamente a los programadores que estén interesados ​​en trabajar con clases de esta manera que primero obtengan un conocimiento sólido de los conceptos básicos de las clases antes de intentar aprovechar el poder de la herencia múltiple, ya que los errores o las prácticas de codificación deficientes en la clase principal se transmiten a la clase infantil.