Product Design, Manufacturing & Innovation Resources
Maison » Héritage (programmation OOP)

Héritage (programmation OOP)

1967
  • Kristen Nygaard
  • Ole-Johan Dahl
Programmeur codant l'héritage en programmation orientée objet dans un bureau moderne.

(Image générée à titre d'illustration uniquement)

L'hérédité est un mécanisme dans POO Lorsqu'une nouvelle classe (sous-classe ou classe dérivée) est basée sur une classe existante (superclasse ou classe de base), en héritant de ses attributs et méthodes, cela favorise la réutilisation du code et établit une hiérarchie naturelle entre les classes. La sous-classe peut étendre ou redéfinir le comportement hérité, permettant ainsi des implémentations plus spécifiques tout en conservant une interface commune.

L'héritage facilite la relation “is-a” entre les classes. Par exemple, un ‘chien’ est un type d‘’animal‘. Dans ce scénario, ’Animal‘ serait la superclasse, contenant des attributs généraux et des méthodes comme ’age‘ et ’eat()‘. La classe ’Chien‘ serait la sous-classe, héritant de ces propriétés et ajoutant ses propres propriétés spécifiques, comme ’race‘ et ’bark()". Cela permet d'éviter la duplication du code, car la logique commune est définie une fois dans la superclasse et réutilisée par toutes ses sous-classes. Les modifications apportées à la superclasse sont automatiquement propagées à toutes les sous-classes, ce qui simplifie la maintenance.

Il existe différents types d'héritage, notamment l'héritage simple (une classe hérite d'une seule superclasse), l'héritage multiple (une classe hérite de plusieurs superclasses) et l'héritage multiniveau (une classe hérite d'une autre classe qui est elle-même une sous-classe). Bien que puissant, l'héritage peut également introduire de la complexité et un couplage étroit entre les superclasses et les sous-classes. Une utilisation excessive peut conduire à des hiérarchies profondes et alambiquées qui sont difficiles à comprendre et à maintenir. La conception moderne privilégie souvent la composition par rapport à l'héritage, où un objet contient une instance d'un autre objet pour permettre la réutilisation du code, ce qui représente une relation de type “has-a”.

UNESCO Nomenclature: 1203
- Informatique

Taper

Système abstrait

Perturbation

Substantiel

Usage

Utilisation généralisée

Précurseurs

  • le concept de classification hiérarchique en biologie et en philosophie
  • structures de données pouvant contenir d'autres structures de données
  • la nécessité de réutiliser le code dans les grands systèmes logiciels
  • la conception du langage simula, qui a introduit les classes et l'héritage

Applications

  • gui les boîtes à outils pour widgets (par exemple, une classe ‘bouton’ héritant d'une classe ‘contrôle’)
  • cadres pour le développement Web (par exemple, classes de contrôleur héritant d'un contrôleur de base)
  • le développement de jeux (par exemple, les classes ‘orc’ et ‘elfe’ héritant d'une classe ‘personnage’)
  • modélisation des classifications biologiques
  • creating specialized exception types in programming languages

Brevets:

NA

Idées d'innovations potentielles

  • architectures de plugins extensibles pour des logiciels comme WordPress ou VSCode
  • customizable interface utilisateur themes in operating systems
  • apprentissage par transfert dans les réseaux neuronaux où un modèle de base est étendu pour une nouvelle tâche
  • systèmes de gestion des versions pour les composants logiciels utilisant des hiérarchies de classes
  • couches d'accès aux données génériques qui peuvent être spécialisées pour différentes bases de données (par exemple, SQL, NoSQL)
  • systèmes d'entités basés sur des composants dans les moteurs de jeu
  • protocoles de sécurité en couches héritant d'une norme de protocole de base
  • cadres de modélisation financière extensibles
  • comportements de robot personnalisables hérités d'une plateforme robotique de base
  • langages spécifiques à un domaine (DSL) construits en étendant une grammaire de langage de base
En rapport avec : héritage, sous-classe, superclasse, classe dérivée, classe de base, réutilisation du code, hiérarchie, relation is-a, polymorphisme, surcharge.

Contexte historique

Héritage (programmation OOP)

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

(si la date est inconnue ou non pertinente, par exemple « mécanique des fluides », une estimation arrondie de son émergence notable est fournie)

10e année anniversaire

Les images en pleine résolution et les téléchargements sont uniquement disponibles, et 100% gratuits, pour les membres inscrits.