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
Ciencias de la computación

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 kits de herramientas de widgets (por ejemplo, una clase "botón" que hereda de una clase "control")
  • 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
  • creating specialized exception types in programming languages

Patentes:

NA

Ideas para posibles innovaciones

  • Arquitecturas de complementos extensibles para software como WordPress o Vscode
  • customizable interfaz de usuario themes in operating systems
  • aprendizaje por transferencia en redes neuronales donde se extiende un modelo base para una nueva tarea
  • sistemas de control de versiones para componentes de software mediante jerarquías de clases
  • Capas de acceso a datos genéricos que pueden especializarse para diferentes bases de datos (por ejemplo, SQL, NOSQL)
  • sistemas de entidades basados ​​en componentes en motores de juego
  • Protocolos de seguridad en capas que heredan de un estándar de protocolo base
  • marcos de modelado financiero extensibles
  • Comportamientos de robot personalizables heredados de una plataforma robótica base
  • Lenguajes específicos de dominio (dsls) creados mediante la extensión de una gramática de lenguaje central
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)

décimo año aniversario

Las imágenes en tamaño completo y las descargas solo están disponibles, de forma totalmente gratuita, para los miembros registrados.

> Acceso <