Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
java
Chapitre 4: Polymorphisme
10/04/2020
Chapitre 4: Polymorphisme
2
Concept Concept
Bases de
polymorphisme Le polymorphisme est la caractéristique
Généralisation à d'un élément qui peut se présenter sous
plusieurs classe
Redéfinition et différentes formes.
surcharge
Conversion des
Le polymorphisme constitue la troisième
arguments caractéristique essentielle d'un langage
Règles du
polymorphisme orienté objet après l'abstraction des
Conversion explicite de
référence
données (encapsulation) et l'héritage
Super classe Object
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
3
Concept Concept
Bases de
polymorphisme En
programmation par obje, on appelle
Généralisation à polymorphisme, le fait que:
plusieurs classe
Redéfinition et un objet d’une classe puisse être manipulé
surcharge
comme s’il appartenait à une autre classe,
Conversion des
arguments la même opération puisse se comporter
Règles du
polymorphisme
différemment sur différentes classes de la
Conversion explicite de hiérarchie.
référence
Super classe Object
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
4
Concept Concept
Bases de
polymorphisme Lepolymorphisme se base sur cette
Généralisation à affirmation : un objet a comme type non
plusieurs classe
Redéfinition et seulement sa classe mais aussi n’importe
surcharge
quelle classe dérivée.
Conversion des
arguments
Règles du
polymorphisme
Conversion explicite de
référence
Super classe Object
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
5
Bases de polymorphisme
Concept
Bases de Soient les classes Point et PointCol suivantes:
polymorphisme
Généralisation à
plusieurs classe
Redéfinition et
surcharge
Conversion des
arguments
Règles du
polymorphisme
Conversion explicite de
référence
Super classe Object
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
6
Bases de polymorphisme
Concept Soient les classes Point et PointCol suivantes:
Bases de
polymorphisme
Généralisation à
plusieurs classe
3
Redéfinition et 5
surcharge
Conversion des
arguments
Règles du 4
polymorphisme
9
Conversion explicite de
référence vert
Super classe Object
Règle 1: Java permet à une variable objet
Classes et méthodes l’affectation d’une référence à objet d’un type dérivé
finales
10/04/2020
Chapitre 4: Polymorphisme
7
Bases de polymorphisme
Concept
Bases de
Soient les classes Point et PointCol suivantes:
polymorphisme
Généralisation à
plusieurs classe Appelle la méthode
Redéfinition et afficher de la classe Point:
surcharge « Je suis un point de
coordonnées 3 5 »
Conversion des
arguments
Règles du Appelle la méthode
polymorphisme afficher de la classe
Conversion explicite de PointCol:
référence « Je suis un point de
Super classe Object coordonnées 3 5 vert »
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
8
Bases de polymorphisme
Concept
L’instruction p. afficher() se base non pas sur le
Bases de
polymorphisme
type de la variable p mais sur le type effectif de
Généralisation à
l’objet référencé par p au moment de l’appel
plusieurs classe car celui-ci peut évoluer dans le temps.
Redéfinition et Le choix se fait au moment de l’exécution et non
surcharge
pas au moment de la compilation
Conversion des
arguments On l’appelle ligature dynamique (ou liaison
Règles du dynamique).
polymorphisme
Conversion explicite de
référence
Règle 2: Le choix de la méthode appelée se fait
Super classe Object
selon le type effectif de l’objet référencé au
moment de l’exécution
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
9
10/04/2020
Chapitre 4: Polymorphisme
10
10/04/2020
Chapitre 4: Polymorphisme
11
10/04/2020
Chapitre 4: Polymorphisme
12
Concept
Généralisation à plusieurs classes
Bases de
polymorphisme
Généralisation à
plusieurs classes
Redéfinition et
surcharge
Conversion des
arguments
Règles du
polymorphisme
Conversion explicite de
référence
Super classe Object
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
13
10/04/2020
Chapitre 4: Polymorphisme
14
Concept
Polymorphisme, redéfinition et surcharge
Bases de
polymorphisme Bien que a.f(n) et b.f(n)
Généralisation à
appliquent toutes les deux
plusieurs classes une méthode f à un objet de
Redéfinition et
type B, elles n’appellent pas
surcharge la même méthode.
Conversion des
arguments
Règles du
polymorphisme
Conversion explicite de
référence
Super classe Object
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
15
Concept
Polymorphisme, redéfinition et surcharge
Bases de
polymorphisme
Généralisation à
plusieurs classes L’utilisation simultanée de la surdéfinition et
Redéfinition et de la redéfinition peuvent conduire à des
surcharge
Conversion des situations complexes.
arguments
Règles du Il est donc conseillé de les utiliser
polymorphisme
Conversion explicite de
prudemment et de ne pas en abuser.
référence
Super classe Object
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
16
Concept
Conversion des arguments affectifs
Bases de Cas 1.Méthode non surdéfinie et non redéfinie
polymorphisme
Généralisation à
plusieurs classes
Redéfinition et
surcharge
Conversion des
arguments
Règles du
polymorphisme
Conversion explicite de
référence
Super classe Object
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
17
Concept
Conversion des arguments affectifs
Bases de Cas 2.Méthode non surdéfinie et redéfinie
polymorphisme
Généralisation à
plusieurs classes
Redéfinition et
surcharge
Conversion des
arguments
Règles du
polymorphisme
Conversion explicite de
référence
Super classe Object
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
18
Concept
Conversion des arguments affectifs
Bases de Cas 3.Méthode surdéfinie (exemple)
polymorphisme
Généralisation à
plusieurs classes
Redéfinition et
surcharge
Conversion des
arguments
Règles du
polymorphisme
Conversion explicite de
référence
Super classe Object
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
19
Règles du polymorphisme
Concept L’abus des possibilités de redéfinition et surdéfinition
Bases de peuvent conduire à des situations complexes
polymorphisme
Voici un récapitulatif des différentes règles:
Généralisation à
plusieurs classes Compatibilité: Il existe une conversion implicite d’une
référence à un objet de classe C en une référence à un
Redéfinition et objet d’une classe ascendante
surcharge
Ligature dynamique. Dans un appel de la forme x.f(…) où
Conversion des
arguments
x est supposé de type C, le choix de f est déterminé de
deux manières:
Règles du A la compilation: signature de la meilleure méthode f
polymorphisme convenant à l’appel, ce qui définit aussi le type de retour
Conversion explicite de A l’exécution: on recherche la méthode f de signature et de
référence type de retour voulus, à partir de la classe correspondant
Super classe Object au type effectif de l’objet référencé par x
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
20
10/04/2020
Chapitre 4: Polymorphisme
21
10/04/2020
Chapitre 4: Polymorphisme
22
10/04/2020
Chapitre 4: Polymorphisme
23
Concept
Super Classe Object
Bases de Laclasse Object comporte quelques
polymorphisme
Généralisation à
méthodes qu’on peut soit :
plusieurs classes utiliser telles quelles
Redéfinition et
surcharge soit les redéfinir.
Conversion des Les plus importantes sont :
arguments
Règles du toString
polymorphisme
getClass()
Conversion explicite
de référence hashCode()
Super classe Object
Equals()
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
24
Concept
Super Classe Object
Bases de Etant données les possibilités offertes par le
polymorphisme
Généralisation à polymorphisme, une variable de type Object
plusieurs classes
Redéfinition et
peut être utilisée pour référencer un objet de
surcharge type quelconque.
Conversion des
arguments Ceci peut être utilisé pour manipuler des
Règles du
polymorphisme objets dont on ne connait pas le type exact
Conversion explicite
de référence
au moment où on l’utilise.
Super classe Object Exemple:
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
25
Concept
Super Classe Object
Bases de
polymorphisme
Généralisation à
plusieurs classes
Redéfinition et
surcharge
Conversion des
arguments
Règles du
polymorphisme
Conversion explicite
de référence
Super classe Object
Classes et méthodes
finales
10/04/2020
Chapitre 4: Polymorphisme
26
Concept
Classes et méthodes finales
Bases de Lorsque le mot clé final est appliqué à une
polymorphisme
Généralisation à variable ou à des champs d’une classe, il
plusieurs classes
Redéfinition et
interdit la modification de leur valeur.
surcharge
final int n = 23;
Conversion des
arguments …
Règles du
polymorphisme n=n+5; // erreur
Conversion explicite
de référence Lemot clé final peut s’appliquer à une classe
Super classe Object ou à une méthode mais avec une signification
Classes et méthodes
finales totalement différente.
10/04/2020
Chapitre 4: Polymorphisme
27
Concept
Classes et méthodes finales
Bases de Une méthode déclarée finale ne peut pas
polymorphisme
Généralisation à être redéfinie dans une classe dérivée.
plusieurs classes
Redéfinition et Une classe déclarée finale ne peut pas être
surcharge
Conversion des
dérivée
arguments
Règles du
polymorphisme
Conversion explicite
de référence
Super classe Object
Classes et méthodes
finales
10/04/2020