Sommaire

Les classes abstraites Classe:abstraite

Il peut arriver qu’une classe de base contienne des méthodes impossibles à implémenter car à son niveau dans la hiérarchie elle ne dispose pas des informations nécessaires.

Par exemple, une classe de base FormeGeometrique propose une méthode virtuelle Dessiner. Cette classe est ensuite héritée par les classes Triangle, Rectangle et Cercle qui vont implémenter chacune leur propre méthode Dessiner.

L’implémentation de la méthode Dessiner dans la classe de base FormeGeometrique n’a donc aucun sens car chaque forme est spécifique et, au niveau de FormeGeometrique, cette forme est tout à fait abstraite !

Alors dans ce cas pourquoi définir la méthode Dessiner dans FormeGeometrique ?

Ceci est tout à fait en rapport avec le polymorphisme. Imaginez que vous soyez en train de construire une application de dessin et que cette application gère une série de formes géométriques soigneusement définies par l’utilisateur. Vous pourriez utiliser une liste d’objets de type Triangle, une liste d’objets de type Rectangle, etc. Bon courage, car cela deviendra très vite lourd à gérer... En construisant une liste d’objets de type FormeGeometrique vous pourrez la remplir d’objets de types Triangle, Rectangle et Cercle. Pourquoi ? Parce qu’ils héritent tous les trois de la classe de base FormeGeometrique ...