Accueil
 Sommaire du cours
 1  Introduction à Java
 2  Concepts de bases de Java
 3  Classes et objets en Java
 4  Généralisation spécialisation en Java
 4.1  Généralisation spécialisation
 4.1.1  Héritage: comment en Java
 4.1.2  Héritage et constructeur
 4.1.3  Exemple de classe parente et classe dérivée
 4.1.4  Utilisation de classe parente et dérivée
 4.2  Polymorphisme
 4.3  Redéfinition de méthodes dans les classes dérivées
 4.4  Héritage, membres et visibilité
 Questions
 4.5  Classes abstraites
 4.6  Exemple de classe Abstraites
 4.7  Interfaces
 5  Organisation des sources Java
 6  API Java
 7  Exceptions en Java
 8  Concepts objets avancés en Java
 Bibliographie

 Contacts

W3C validator

Département INF  
 Conception et programmation orientées objet


4.1 Généralisation spécialisation

../CoursUML/Figures/generalisation

    précédent     suivant 


Une classe concrétise un type de donnée abstrait et un comportement. Deux cas se présentent le plus souvent :

  1. besoin d’étendre une classe : le programmeur désire réaliser une nouvelle classe qui apporte de nouvelles fonctionnalités tout en restant proche d’une classe existante. Plutôt que de copier/coller du code d’un fichier à un autre, la nouvelle classe est spécialisée à partir de la classe initiale par un lien d’héritage. La nouvelle classe est appelée classe dérivée à partir d’une classe de base ;
  2. des classes développées séparément présentent des parties identiques dans leurs attributs et dans leurs méthodes. Dans ce cas, les parties identiques sont factorisées dans une classe qui généralise les classes existantes. Les classes spécialisées sont modifiées pour supprimer la partie commune et sont liées à la classe de généralisation par un lien d’héritage.

Une classe D qui hérite d’une classe B, partage tous les membres de B. Une classe D qui hérite d’une classe B peut étendre ou modifier les structures de données et le comportement hérité de la classe B.

Christian Bac, Denis Conan, Télécom SudParis, CSC 4002, Octobre 2015