C++ : Classes
Enseignement Informatique
LAL
Ne pas confondre instance d'objet et classe d'objet.
L'héritage est un principe propre à la POO qui permet de créer une nouvelle classe à partir d'une classe existante. La classe nouvellement créée, dite classe dérivée, contient les attributs et les méthodes de classe dont elle dérive, auxquelles s'ajoutent de nouveaux attributs et de nouvelles méthodes propres à la classe dérivée.
L'héritage permet donc de définir une hiérarchie de classes :
Une classe dérivée peut fournir une nouvelle définition d'une méthode d'une classe parent car elle peut avoir besoin de réagir différemment à l'appel de cette méthode. Cette redéfinition substituera une méthode à une autre : c'est la spécialisation.
La notion de polymorphisme signifie que, la même opération pouvant se comporter différemment sur différente classes de la hiérarchie, il est possible d'appeler la méthode d'un objet sans se soucier de son type intrinsèque. Ceci permet de faire abstraction des détails des classes spécialisées d'une famille d'objet, en les masquant par une interface commune (qui est la classe de base).
![]() |
La fonction accélérer() n'est pas la même pour un Vélo et une Moto. La redéfinition de cette fonction dans chacune des sous-classes entrainera un comportement différent suivant que DeuxRoues est un Vélo ou une Moto. |
C'est la description de la structure interne de la classe
![]() |
Visibilité des membres :
|
NB : dans cet exemple, on a choisi de représenter l'ellipse en interne à la classe par les coordonnées de son centre (cX, cY), par son grand axe a et par son petit axe b.
C'est la définition des fonctions associées
Par convention, les noms de classe commencent par une majuscule, les données membre par _ ou m_, les fonctions membre par une minuscule.
L'héritage permet de spécialiser une classe en définissant une relation de type "est une sorte de"
Un cercle est une spécialisation d'une ellipse, il en possède les propriétés plus d'autres qui lui sont spécifiques. On dérive donc la classe Cercle de la classe Ellipse.
L'héritage permet de spécialiser une classe en définissant une relation de type "est une sorte de"
Un cercle est une spécialisation d'une ellipse, il en possède les propriétés plus d'autres qui lui sont spécifiques. On dérive donc la classe Cercle de la classe Ellipse.
Un objet héritant une méthode d'une classe parente peut réagir de façon différente à l'appel de cette méthode
Questions ?