Accueil
 Sommaire
 1  Objectifs de ce cours de modélisation orientée objet
 2  Généralités sur la modélisation orienté objet et sur UML
 3  Analyse, vues cas d'utilisation et processus
 4  Analyse et conception, aspects statiques de la vue logique
 4.1  Diagrammes communs à l'analyse et à la conception
 4.2  Diagramme de classes
 4.3  Diagramme d'objets
 QCM
 4.4  Concepts avancés du diagramme de classes
 4.4.1  Navigabilité
 4.4.2  Classe d'association
 4.4.3  Composition: agrégation forte
 4.4.4  Classe abstraite
 4.4.5  Interface
 4.4.6  Classe paramétrée / générique *
 4.4.7  Exemple de diagramme de classes avancé
 5  Analyse et conception, aspects dynamiques de la vue logique
 6  Conception, aspects langage et technique
 7  Conception, vues développement et physique
 8  Conclusion
 9  Bibliographie

 Contacts

W3C validator

Département INF  
 Conception et programmation orientées objet


4.4.4 Classe abstraite
  • Un Média peut être transporté, dupliqué, affiché. Le transport et la duplication sont indépendants du type de Média (copie de fichiers). Par contre, tout Média peut être affiché et ce n’est pas la même chose pour Livre, Vidéo, Graphique ou Texte. Un Média ne peut pas définir comment il s’affiche tant qu’il ne sait pas ce qu’il est.
  • Il n’existe pas d’instance de la classe Média. Un Média n’existe qu’en tant que Livre, Texte, Graphique ou Vidéo.

Figures/classe_abstraite

    précédent     suivant 


UML permet de spécifier une classe de manière incomplète en ne définissant pas certaines opérations. Ces classes dites abstraites, n’étant pas complètement spécifiées, ne peuvent pas être instanciées. Ce sont les classes enfants qui compléteront cette spécification en définissant les opérations non encore définies. Ces classes sont appelées des classes concrètes ; toutes les classes sont par défaut complètes, c’est-à-dire avec des opérations définies. Les opérations non définies sont dites abstraites et sont écrites en italique dans les diagrammes de classes. Dès qu’une opération est abstraite, sa classe devient abstraite.

Une seconde utilisation des classes abstraites est d’empêcher l’instanciation de la classe. Par exemple, dans notre étude de cas Studs, la classe Scrutin factorise les caractéristiques et les comportements communs à tous les scrutins mais nous désirons que tous les scrutins créés soient soit des ScrutinPlagesHoraires soit des ScrutinPréférences. Cela est obtenu en rendant la classe Scrutin abstraite. Dans cette seconde utilisation des classes abstraites, il est ainsi possible qu’aucune opération de la classe abstraite ne soit abstraite.

Cf. le glossaire pour la définition des termes « classe abstraite » et « classe concrète ».

D. Conan, C. Taconet, C. Bac, Télécom SudParis, CSC 4002, Octobre 2015