Académique Documents
Professionnel Documents
Culture Documents
Abstraction de données
Encapsulation
Héritage
Polymorphisme
Encapsulation
Objet: Voiture
Marque : Renault Clio
Carburant : Diesel
Abstraction
Démarrer {…}
Voiture Arreter {…}
Accelerer {…}
Monde réel Monde de programmation
Voiture
L’abstraction est donc :
◼ relative à la perspective de l’observateur.
◼ focalisée sur la vue de l’extérieur de l’objet.
Pr. A. El Mhouti 12 FSTH
Concepts fondamentaux de la POO
Abstraction des données
Exemple : Principe d'abstraction :
Une classe « Personne » aura :
dans le contexte universitaire les attributs : nom, prénom, CNE, Filière,...
Abstraction 1 Abstraction 2
Dans la sous classe on ne mentionne que les nouveaux attributs et les nouvelles
méthodes, qui viennent s’additionner à ceux et celles de la super classe.
Pr. A. El Mhouti 18 FSTH
Concepts fondamentaux de la POO
Héritage : spécialisation/généralisation
L'héritage est une relation de spécialisation/généralisation entre deux classes.
On dit que :
◼ la classe mère généralise la classe fille.
◼ la classe fille spécialise la classe mère.
➔ Les deux classes ont un attribut et une méthode en commun, on les factorise donc dans
une classe "étudiant" :
Dans une hiérarchie de classe, les liens entre classes sont des liens
d'héritage.
L’appel de la méthode surface() sur les objets héritant de la classe Forme produira
alors un résultat différent selon la sous classe à laquelle ils appartiennent.
L’héritage des attributs de la classe Rectangle par la classe Carre pose deux
problèmes :
◼ Pour un carré : longueur =largeur => il faut un constructeur avec 1 seul paramètre.
◼ la méthode affiche écrit le mot “rectangle” en début de chaîne. Il serait souhaitable
que ce soit “carré” qui s’affiche au lieu de “rectangle” .
Pr. A. El Mhouti 29 FSTH
Concepts fondamentaux de la POO
Polymorphisme
Exemple 2 : (suite)
Pour résoudre le 1er problème, il faut écrire un constructeur spécifique pour Carre.
Puisque les constructeurs ne sont pas hérités, le constructeur de Carre doit faire appel
au constructeur de Rectangle en utilisant le mot-clé super.
NB: en Java, le mot clé super fait appel au constructeur de la classe mère.
Pr. A. El Mhouti 30 FSTH
Concepts fondamentaux de la POO
Polymorphisme
Exemple 2 : (suite)
Le 2ème problème peut être résolu en appliquant le principe de polymorphisme par
une redéfinition de la méthode affiche() :
➔ même signature mais le traitement effectué est réécrit :