ebook img

le polymorphisme en Java PDF

14 Pages·2016·0.2 MB·French
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview le polymorphisme en Java

Comprendre les hiérarchies de types: le polymorphisme en Java Virginia Aponte CNAM-Paris 14 mars 2016 VirginiaAponte (CNAM-Paris) NFA035 14mars2016 1/1 Polymorphisme = plusieurs formes (pour les types) Idée L’argumentpasséàuneméthodepeutavoirplusd’untype,sil’algorithme implantéparlaméthodenedépendpas(demanièretropforte)decetype. Exemples: laméthodeaddquiajouteunobjetenfindeliste,n’utilisepasde connaissanceliéeautypedel’objetajouté. laméthodequiafficheunobjetdetypeAffichable,nedépendpasdu typeprécisdel’objet,maisseulementdufaitqu’ilpossèdeuneméthode afficher; VirginiaAponte (CNAM-Paris) NFA035 14mars2016 2/1 2 sortes de polymorphisme Polymorphismeparamétrique(ougénéricité):méthode«paramétrée» paruntypegénériqueT; Ex:add(T e)pourlesArrayList<T>. Polymorphismeparsous-typage:laméthodeestapplicablesurtout type«plusbas»dansunehiérarchiedetypes. Ex:laméthodeaff(Affichable a)applicablesurtoutobjetqui implanteAffichable. VirginiaAponte (CNAM-Paris) NFA035 14mars2016 3/1 Hiérarchies de types en Java (classes + interfaces) EnJava,lestypes(classes+interfaces)sontorganiséesenhiérarchies. SiBestun«descendant»deAdansunemêmehiérarchie⇒Bcontientau moins toutesleméthodesdeA,pluséventuellementd’autres. Notation:A(cid:57)(cid:57)(cid:75)B siginifieB descendantdeA. I (cid:57)(cid:57)(cid:75)C :entreinterfacesetclassesviaimplements:siuneclasseC implanteuneinterfaceI; I (cid:57)(cid:57)(cid:75)I :entreinterfacesviaextends,siuneinterfaceI étendune 1 2 2 autreinterfaceI ; 1 C (cid:57)(cid:57)(cid:75)C :entreclassesviaextends,siuneclasseC étendune 1 2 2 autreclasseC ; 1 VirginiaAponte (CNAM-Paris) NFA035 14mars2016 4/1 Exemple : hiérarchie entre interfaces et classes Interface interface Affichable { void afficher(); Affichable } implements class Compte implements Affichable { … public void afficher() { …} } Compte Date class Date implements Affichable { Classes …. public void afficher() { …} } VirginiaAponte (CNAM-Paris) NFA035 14mars2016 5/1 Exemple de polymorphisme par sous-typage (1) static void aff(String m, Affichable a){ Terminal.ecrireString(m); a.afficher(); } public static void main(...){ Compte c = new Compte(); Date drv = new Date(); aff("Etat du compte", c); aff("Date du rdv", d); affaccepteaussibienunobjetComptequ’unobjetDate. affestpolymorpheparsous-typage:elleacceptetoutobjetdontletypeest undescendantdutypeAffichabledéclarépoursonargumenta. VirginiaAponte (CNAM-Paris) NFA035 14mars2016 6/1 Exemple : hiérarchie entre classes (1) CompteRemunereétendlaclasseCompteavecnouveuxattributs+ méthodes. class CompteRemunere extends Compte { double taux; ... void fixeTaux(double t) { this.taux = t;} void crediterInterets() { ...} } UnobjetCompteRemunerecontientattributs+méthodesdesaclasseplus ceuxdelaclasseCompte. CompteRemunerehéritedetouteslesméthodesetattributsdeCompte. VirginiaAponte (CNAM-Paris) NFA035 14mars2016 7/1 Exemple : hiérarchie entre classes (2) Classes class CompteRemunere extends Compte { Compte double taux; void fixeTaux(double t){…} extends void crediterInterets(){…} } CompteRemunere VirginiaAponte (CNAM-Paris) NFA035 14mars2016 8/1 Exemple de polymorphisme par sous-typage (2) public static void main(...){ Compte c = new Compte(); CompteRemunerere cr = new CompteRemunere(); cr.depot(20); c.depot(50); depots’appliqueaussibiensurunComptequesurunCompteRemunere. depotestpolymorpheparsous-typage:elles’appliquesurtoutobjet descendantdutypeCompte. VirginiaAponte (CNAM-Paris) NFA035 14mars2016 9/1 Exemple de polymorphisme par sous-typage (3) static double somme(Compte c1, Compte c2){ return (c1.getSolde() + c2.getSolde()); } public static void main(...){ Compte c = new Compte(); CompteRemunerere cr = new CompteRemunere(); double s1 = somme(c,cr); double s2 = somme(cr, cr); sommeaccepteaussibiendesComptequedesCompteRemunere. sommeestpolymorpheparsous-typage:elleacceptetoutobjetdescendant dutypeComptedéclarépoursesarguments. VirginiaAponte (CNAM-Paris) NFA035 14mars2016 10/1

Description:
Comprendre les hiérarchies de types: le polymorphisme en Java. Virginia Aponte. CNAM-Paris. 14 mars 2016. Virginia Aponte (CNAM-Paris).
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.