' Structures en Java MD2 Structures en Java $ www.lamsade.dauphine.fr/˜maudet/cours/md2/ Plan • héritage • exceptions • flux et fichiers • notions de programmation graphique • introduction au parallélisme • ... & Univ. Paris Dauphine ' 1 Structures en Java MD2 Introduction % $ Réutiliser • un des grands principes de la programmation orientée objet • crucial pour des aspects d’efficacité et de validation • réutilisation des types (⇒ cf. notion d’interface) • réutilisation des classes? & Univ. Paris Dauphine 2 % ' Structures en Java MD2 Héritage (principes) $ Réutiliser les classes? • composition = créer des objets des classes existantes dans la nouvelle classe • héritage = créer une nouvelle classe du type d’une classe déja existante & Univ. Paris Dauphine ' 3 Structures en Java MD2 Héritage (principes) % $ Terminologie Soit une classe existante, toute classe qui hérite de cette classe est une classe fille de cette classe (classe mère). Hériter c’est... • pouvoir utiliser les ressources (méthodes en particulier) de la classe mère. Hériter c’est aussi... • pouvoir étendre le comportement hérité de la classe mère & Univ. Paris Dauphine 4 % ' Structures en Java MD2 Héritage (principes) $ Etendre le comportement de la classe mère • ajouter de nouvelles méthodes • modifier certaines méthodes de la classe mère • ajouter de nouvelles variables d’instances • combiner ces trois approches & Univ. Paris Dauphine ' 5 Structures en Java MD2 Héritage (principes) % $ • une classe ne peut être la classe fille que d’une seule classe mère • la relation d’héritage est une relation transitive ⇒ structure d’arbre (arbre de classes) Racine de cet arbre? la classe Object! & Univ. Paris Dauphine 6 % ' Structures en Java MD2 Héritage (principes) $ Quelques règles Soit une classe existante Cc • les méthodes de toute sur-classe sont accessibles aux objets de Cc • les objets de Cc ne peuvent accéder à aucune des méthodes des sous-classes de Cc • les sous-classes de Cc définissent des sous-types du type Cc • les objets de Cc sont aussi des types des sur-classes & Univ. Paris Dauphine ' 7 Structures en Java MD2 Exemple % $ Compte 7 gOOO p p OOO p p p OOO p p p OOO p p p CompteGold CompteCredit O LivretJ eune • Un CompteGold est un Compte (mais qui permet des découverts) • Un CompteCrédit est un Compte (mais qui produit des intérêts) • Un LivretJeune est un CompteCredit (mais avec un taux très avantageux) • ... et par transitivité un LivretJeune est aussi un Compte & Univ. Paris Dauphine 8 % ' Structures en Java MD2 Syntaxe Java $ extends mot-clef pour définir la relation d’héritage & Univ. Paris Dauphine 9 %