Product Design, Manufacturing & Innovation Resources
Hogar » Herencia (programación orientada a objetos)

Herencia (programación orientada a objetos)

1967
  • Kristen Nygaard
  • Ole-Johan Dahl
Programador codificando herencia en programación orientada a objetos en una oficina moderna.

(Imagen generada únicamente con fines ilustrativos)

La herencia es un mecanismo en Programación orientada a objetos donde una nueva clase (subclase o clase derivada) se basa en una clase existente (superclase o clase base), heredando sus atributos y métodos. Esto favorece la reutilización del código y establece una jerarquía natural entre las clases. La subclase puede extender o sobrescribir el comportamiento heredado, lo que permite implementaciones más específicas manteniendo una interfaz común.

La herencia facilita una relación de tipo "es un" entre clases. Por ejemplo, un "Perro" es un tipo de "Animal". En este caso, "Animal" sería la superclase, que contiene atributos y métodos generales como "edad" y "comer()". La clase "Perro" sería la subclase, que hereda estas propiedades y añade las suyas propias, como "raza" y "ladrar()". Esto evita la duplicación de código, ya que la lógica común se define una sola vez en la superclase y se reutiliza en todas sus subclases. Los cambios realizados en la superclase se propagan automáticamente a todas las subclases, lo que simplifica el mantenimiento.

Existen diferentes tipos de herencia, incluyendo la herencia simple (una clase hereda de una sola superclase), la herencia múltiple (una clase hereda de más de una superclase) y la herencia multinivel (una clase hereda de otra clase que a su vez es una subclase). Si bien es poderosa, la herencia también puede introducir complejidad y un acoplamiento estrecho entre superclases y subclases. Su uso excesivo puede dar lugar a jerarquías profundas y complejas, difíciles de comprender y mantener. El diseño moderno suele favorecer la composición sobre la herencia, donde un objeto contiene una instancia de otro objeto para lograr la reutilización de código, representando una relación de tipo "tiene un".

UNESCO Nomenclature: 1203
- Informática

Tipo

Sistema abstracto

Ruptura

Sustancial

Uso

Uso generalizado

Precursores

  • El concepto de clasificación jerárquica en biología y filosofía
  • estructuras de datos que podrían contener otras estructuras de datos
  • La necesidad de reutilizar código en grandes sistemas de software
  • El diseño del lenguaje simula, que introdujo clases y herencia

Aplicaciones

  • gui widget toolkits (e.g., a ‘button’ class inheriting from a ‘control’ class)
  • Marcos para el desarrollo web (por ejemplo, clases de controlador que heredan de un controlador base)
  • game development (e.g., ‘orc’ and ‘elf’ classes inheriting from a ‘character’ class)
  • modelado de clasificaciones biológicas
  • Creación de tipos de excepciones especializados en lenguajes de programación

Patentes:

NA

Ideas para posibles innovaciones

Debido al bloqueo del tráfico generado por bots, que actualmente supera los 40.000 al día, este contenido está reservado para los miembros de la comunidad.
> Iniciar sesión < o > Registrarse < (100% gratis) para acceder a esto, al igual que a todo el demás contenido y herramientas restringidos.

Relacionado con: herencia, subclase, superclase, clase derivada, clase base, reutilización de código, jerarquía, relación "es un", polimorfismo, sobrescritura.

Contexto histórico

Herencia (programación orientada a objetos)

1953
1960
1960
1967
1970
1970
1970
1952
1956
1960
1967
1967
1970
1970
1970

(Si la fecha es desconocida o no es relevante, por ejemplo "mecánica de fluidos", se proporciona una estimación redondeada de su aparición notable)

Invención, innovación y principios técnicos relacionados.

Las imágenes a tamaño completo y las descargas sólo están disponibles, 100% gratis, para los miembros registrados.

> Acceso <