En programmation orientée objet, l’héritage est un mécanisme qui permet, lors de la déclaration d’une nouvelle classe, d'y inclure les caractéristiques d’une autre classe.
L'héritage établit une relation de généralisation-spécialisation qui permet d'hériter dans la déclaration d’une nouvelle classe (appelée classe dérivée, classe fille, classe enfant ou sous-classe) des caractéristiques (propriétés et méthodes) de la déclaration d'une autre classe (appelée classe de base, classe mère, classe parent ou super-classe).
En déclarant une nouvelle classe B par héritage de la classe A, ajoutant de nouveaux membres, on peut alors dire que :
A est une généralisation de B et B est une spécialisation de A ;
A est une super-classe de B et B est une sous-classe de A ;
A est la classe mère de B et B est une classe fille de A.
Lorsqu'une classe fille hérite d'une classe mère, elle peut alors utiliser les caractéristiques de la classe mère.
Par exemple, on déclare d'abord la classe de base Vehicule puis, à partir de celle-ci, on déclare les classes dérivées Automobile et Avion qui héritent alors des caractéristiques de la classe de base Vehicule.
On parle d'héritage, car le principe est en quelque sorte le même que celui d’un arbre généalogique; tout comme l'enfant hérite des caractéristiques du parent, les classes « filles » héritent des caractéristiques de leur(s) « mère(s) ».
Ce principe est basé sur une classe dont les « filles » héritent des caractéristiques de leur(s) « mère(s) ».
En programmation orientée objet, l'héritage permet donc de réutiliser (décomposer un système en composants) et d'adapter les objets grâce au polymorphisme.
Une classe abstraite ne peut être instanciée.
Si la classe mère est une classe abstraite, il y a de forte chance qu'elle présente des caractéristiques abstraites (retardées). Pour être instanciable, la classe fille doit alors les définir, sinon elle sera elle-même abstraite.
Si la classe mère est instanciable (c'est-à-dire que toutes ses caractéristiques sont définies) alors la classe fille est également instanciable.
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
La programmation orientée objet (POO), ou programmation par objet, est un paradigme de programmation informatique. Elle consiste en la définition et l'interaction de briques logicielles appelées objets ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre. Il possède une structure interne et un comportement, et il sait interagir avec ses pairs.
Le couplage est une métrique indiquant le niveau d'interaction entre deux ou plusieurs composants logiciels (fonctions, modules, objets ou applications). Deux composants sont dits couplés s'ils échangent de l'information. On parle de couplage fort ou couplage serré si les composants échangent beaucoup d'information. On parle de couplage faible, couplage léger ou couplage lâche si les composants échangent peu d'information et/ou de manière désynchronisée.
En programmation informatique, la composition est une technique qui permet de combiner plusieurs éléments de programmation entre eux pour obtenir un élément ayant une fonctionnalité plus complexe. On distingue la composition de fonctions, la composition d'objets, et la composition dans les modèles. La composition de fonctions consiste à définir une nouvelle fonction en combinant plusieurs fonctions entre elles. Ce procédé s'inspire directement de la composition de fonctions en mathématiques, où le résultat d'une fonction est utilisé comme paramètre d'une autre.
Le cours suivi propose une introduction aux concepts de base de la programmation orientée objet tels que : encapsulation et abstraction, classes/objets, attributs/méthodes, héritage, polymorphisme, ..
The purpose of this MOOC is to offer a complementary capstone project to our existing MOOCs in introduction to programming. This will offer the students the possibility to both stabilize the already a
Le cours suivi propose une introduction aux concepts de base de la programmation orientée objet tels que : encapsulation et abstraction, classes/objets, attributs/méthodes, héritage, polymorphisme, ..
L'objectif de ce cours est de développer des compétences de base en programmation. L'accent sera mis sur l'approche orientée-objet laquelle renforce la réutilisabilité, la maintenabilité et la fiabili
Ce cours approfondit les connaissances en programmation présentées dans le cours ICC du 1er semestre. L'accent est
mis sur l'approche «orientée objet» (en C++), la conception et la spécification de pr
The aim of this course is to provide the background in scientific computing. The class includes a brief introduction to basic programming in c++, it then focus on object oriented programming and c++ s
Couvre les structures de données abstraites et la bibliothèque standard C++, y compris les listes liées, les piles, les files d'attente et les nombres complexes.
Couvre les types de données avancés et la gestion de la mémoire en programmation C, en mettant l'accent sur la cohérence des types et l'allocation dynamique des tableaux.
Explore les concepts de programmation orientés objet, le polymorphisme, l'héritage et la liaison dynamique en Java, soulignant l'importance d'une comparaison correcte des objets.
Eusocial life is characterized by division of labour, collective decision making and self organization, and regarded as the highest form of social organisation in groups. Ants are a model organism for research in collective behavior and the evolution of eu ...
EPFL2023
,
Type inference in the presence of first-class or "impredicative" second-order polymorphism a la System F has been an active research area for several decades, with original works dating back to the end of the 80s. Yet, until now many basic problems remain ...
Assoc Computing Machinery2024
, ,
Data races have long been a notorious problem in concurrent programming. They are subtle to detect, and lead to non-deterministic behaviours. There has been a lot of interest in type systems that statically guarantee data race freedom. Significant progress ...