0% ont trouvé ce document utile (0 vote)
17 vues2 pages

SUP4

Transféré par

Emna Frikha
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
17 vues2 pages

SUP4

Transféré par

Emna Frikha
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Notes de cours Java

Héritage
− L’héritage permet de dériver une classe existante (classe de base, classe mère, super-classe,
super-type) pour créer une nouvelle (classe dérivée, fille, sous-classe, sous-type).
− La classe fille hérite les membres déclarés public et protected de la classe mère.
− L’héritage est à l’origine de la relation est-un, de la redéfinition et du polymorphisme.
− Toutes les classes sont des sous-classes (directement ou indirectement) de la classe Object et
héritent donc ses méthodes.

Surcharge (overload) et redéfinition (override)


− Les méthodes peuvent être surchargées ou redéfinies.
− La redéfinition est liée au concept d’héritage.
− Les constructeurs ne peuvent être que surchargés, car ils ne sont pas hérités.
− Par rapport à la méthode à redéfinir, la méthode redéfinie doit :
o Avoir la même liste de paramètres.
o Avoir le même type de retour ou un sous-type (retour covariant).
o Ne peut pas avoir un modifieur d’accès plus restrictif. (les méthodes qui ont
accès à la méthode originale devraient toujours être capables d’accéder à la
redéfinition)
o Peut avoir un modifieur d’accès moins restrictif.
− Les méthodes déclarées final ne peuvent pas être redéfinies.
− Seules les méthodes héritées peuvent être redéfinies (donc pas les méthodes privées).
− La classe dérivée peut faire appel à la version de la méthode qu’elle a héritée de sa classe
mère même si elle l’a redéfinie. La syntaxe est super.méthodeRedéfinie().
− La surcharge d’une méthode consiste à réutiliser son nom pour en déclarer une nouvelle,
mais ayant une lise d’arguments différente.
− Les différentes versions d’une méthode surchargée :
o Coexister au sein du même objet (soit surchargées dans la même classe soit dans
des classes filles).
o Doivent avoir des listes de paramètres différentes.
o Peuvent avoir des types de retours différents si les listes des paramètres
diffèrent.
o Peuvent avoir des modifieurs d’accès différents.
− Les méthodes d’une super-classe peuvent être surchargées dans ses sous-classes.
− Le type de la référence ainsi que la liste des paramètres déterminent laquelle des
surcharges devrait être invoquée.

Transtypage des références (Casting)


− Il y a deux types de transtypages : le downcasting (vers les sous-types) et le upcasting (vers
les super-types).
− Le downcasting : il est possible d’affecter un objet d’un super-type à une référence d’un
sous-type à condition de faire un transtypage explicite. Après le transtypage, il devient
possible d’accéder aux membres du sous-type. Exemple :

Mohamed Ramzi HADDAD 6 2AINFO, 1ATEL, 2ATA


Notes de cours Java
Personne p = new Personne() ;
Etudiant e = (Etudiant) p ;
− Le upcasting : il est possible d’affecter un objet d’un sous-type à une référence d’un super-
type de manière implicite. C’est une opération sans risque, car elle ne nécessite que la
restriction de l’accès aux membres du super-type. Après transtypage, seul l’accès aux
membres de la super-classe sera possible avec la nouvelle référence. Exemple :
Personne p = new Etudiant() ;

Polymorphisme
− Le polymorphisme fait référence aux méthodes polymorphes (ayant plusieurs formes).
− Une référence a un seul type qui ne peut pas changer. Par contre, elle peut référencer des
objets de même type ou des sous-types. Par exemple, une référence de type Personne peut
référencer des instances de même type ou des sous-types comme Etudiant, Enseignant et
Employé étant donné qu’elles sont des sous classes de Personne.
− Le type de la référence détermine les membres accessibles. Par exemple, une référence de
type Personne ne permet d’accéder qu’au membre appartenant à cette classe même si
l’objet est d’un sous type de personne et dispose d’autres membres.
− Lors de la compilation, le compilateur vérifie que les méthodes invoquées sont déclarées
dans la classe de la référence. Par contre, lors de l’exécution c’est la méthode de l’instance
qui sera invoquée. Donc c’est le type de l’instance qui déterminera laquelle des versions
redéfinies de la méthode sera invoquée. Par exemple : lors de l’appel à la méthode
seDéplacer moyennant une référence de type Pièce, le compilateur vérifie que cette classe
dispose de la méthode et que celle-ci est accessible. Par contre, lors de l’exécution c’est le
type de l’objet référencé qui détermine laquelle des redéfinitions sera exécutée (celle du Roi,
de la Reine, du Pion, etc.).

Mohamed Ramzi HADDAD 7 2AINFO, 1ATEL, 2ATA

Vous aimerez peut-être aussi