java : l'héritage (rappel)

Slides:



Advertisements
Présentations similaires
1 Quelques précisions sur l'héritage. 2 Signification de super.f() appel à la méthode f() masquée super : désigne l'objet appelant comme s'il était de.
Advertisements

Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV1 JAV – TD 5 Lhéritage en Java.
Chapitre III Héritage (début)
Programmation orientée objet
Faculté I&C, Claude Petitpierre, André Maurer 1 Java.
Langage Oriente Objet Cours 4.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
© 2007 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java et les Exceptions Peter Van Roy Département dIngénierie Informatique,
Java Héritage, interfaces.
Langage Oriente Objet Cours 3.
Classes abstraites et Interfaces
Introduction au paradigme orienté-objet (suite)
Design Pattern: Decorator
1 Les paquetages («packages»). 2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Cours 4 Héritage (suite).
Introduction au C++ héritage / polymorphisme
Héritage Lhéritage permet de spécialiser une classe en définissant une relation de type « est une sorte de ». #include comptebancaire.h class CompteEpargne.
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
La notion de type revisitée en POO
La Modélisation Orientée Objet Concevoir un programme : modélisation du problème à résoudre Notion de programme : machine de Turing Pouvoir d’expression.
11/04/ L'héritage Cours 7 Cours 7.
© 2005 P. Van Roy. All rights reserved. FSAB1402: Informatique 2 Le Langage Java Peter Van Roy Département d’Ingénierie Informatique, UCL
PHP 7° PARTIE : PROGRAMMATION OBJET
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Le polymorphisme.
Cours du 5 novembre.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
Les classes Introduction aux Langages Orientés Objets
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Introduction à la programmation objet avec java
Introduction à la programmation objet avec java
Héritage Conception par Objet et programmation Java
Introduction à l'orienté objet. Définition Le terme orienté objet siginifie que l'on organise le logiciel comme une collection d'objets organisée en graphe.
I21 Algorithmique et programmation II David Gross-Amblard, Joël Savelli IEM-uB GFDL 1.2 CM 4/8 v2.
Stéphane Frénot, Frederique Laforest, Frédéric Le-Mouël IJA 1 TD 6 IJA Structures de données JAVA.
1 Programmation en C++ Fonctions ● Déclaration et définition de fonctions ● Arguments ● Surcharge ● Arguments optionnels ● Fonctions constantes ● Fonctions.
WIKITTY Base de données orientée documents et API de persistance pour Java.
JAVA.
Modèle objet : les classes
Environnement de développement des BD
Programmation en C++ Héritage
Pas de variable globale
Les notions de classe et d'objet
Principes de programmation (suite)
Langages de programmation TP7
JAVA et POO : Notion d'héritage
Langages de programmation TP10
Diagramme de classe UML et C++
E) Constructeurs et héritage
Les interfaces en PHP.
Bonnes pratiques Orienté Objet et Java
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Programmation Orientée Objet C# El Akel Bouchra ISMONTIC Tanger 2013/2014.
Calcul Scientifique Initiation à SCILB
Programmation Android GUI (widgets) et ressources
Développement d’une Application CORBA
Les classes et les objets
Paradigme Orienté Objet
Exercice 1 Objectif : Définir une classe avec un constructeur et créer une instance de cette classe. La classe Habitation comprend les attributs : proprietaire.
Programmation Orientée Objet MMI 2ème année – S3
Principes de programmation (suite)
INTERFACE ET POLYMORPHISME
Variables et accès en Java
TP N°6: Construction d’un Serveur Multi-Client
Transcription de la présentation:

java : l'héritage (rappel) Héritage simple : Une classe ne peut hériter que d'une autre classe En C++ possibilités d'héritage multiple Toutes les classes en java forment un arbre d'héritage Dont le sommet est la classe Object Une classe déclarée sans relation d'héritage hérite quand même de Object Pas de limite dans les niveaux d'héritage

java héritage (rappel) Les méthodes et les attributs sont héritées pour tous les niveaux supérieurs une sous -classe définit des attributs et/ou des méthodes : c'est la spécialisation

java : l'héritage (rappel) Définir une classe dérivée extends par défaut : extends Object class CompteBancaire { double solde; // ... void deposer( double montant ) { // … } boolean retirer( double montant ) { } class CompteCheque extends CompteBancaire { double montantDecouvertAutorise; //… boolean retirer(double montant) // … class TestCompteEpargne { public static void main( String [] arg ) { //... CompteEpargne ce; double interet; ce = new CompteEpargne(); ce.deposer( 100.0 ); interet = ce.calculerInterets(); } TestCompteEpargne.java CompteBancaire.java Définissez retirer CompteEpargne.java

java héritage et redéfinition de méthodes Une classe enfant peut redéfinir (override) les méthodes dont elle hérite Elle fournit ainsi des implémentations spécialisées pour celles-ci. Une méthode est redéfinie lorsque : son nom son type de retour ses paramètres sont identiques à ceux de la méthode dont elle hérite

java héritage et redéfinition de méthodes Lors de l'appel à cette méthode pour un objet de cette classe c’est la nouvelle définition et non pas celle de la super-classe qui est invoquée.

java héritage et redéfinition de méthodes public class ClasseA { public void hello() System.out.println(«Hello»); } public void affiche() System.out.println(«Je suis un A»); Fichier classeA.java A a = new A(); B b = new B(); a.hello(); --> Hello a.affiche(); -->Je suis un A public class ClasseB extends ClasseA { public void affiche() System.out.println(«Je suis un B»); } Fichier classeB.java b.hello(); --> Hello b.affiche(); -->Je suis un B

Pour conserver le comportement de la classe parent : java redéfinition de méthodes, réutilisation Pour conserver le comportement de la classe parent : Utilisation du mot clé super associé à la méthode parent : Donnez le résultat public class ClasseB extends ClasseA { public void affiche() System.out.print(«Je suis un B et »); super.affiche() ; } Fichier classeB.java b.hello(); b.affiche(); hello Je suis un B et Je suis un A Appel de la méthode parent affiche()

java redéfinition ou surcharge Attention à ne pas confondre ces deux notions : La surcharge (overloading) S'applique lorsque les paramètres de la méthode ne sont pas identiques en nombre et/ou en type Par contre ne s'applique pas lorsque seul le type de retour n'est pas identique La surdéfinition (overriding) s'applique lorsque Tous les paramètres et le type de retour sont identiques C'est le polymorphisme

java redéfinition ou surcharge exemple public class ClasseA { public void methodX(int i) ... } Fichier classeA.java Surcharge redéfinition public class ClasseB extends ClasseA { public void methodX(double i) ... } Fichier classeB.java public class ClasseC extends ClasseA { public void methodX(int i) ... } Fichier classeC.java Deux méthodes methodX accessibles dans ClasseB Une seule méthode methodX accessible dans ClasseC

Java : surcharge des constructeurs Possibilité de surcharge des constructeurs Avec des types différents de paramètres Un nombre différents de paramètres Possibilité d'accès au constructeur parent Utilisation de super(param1[, param2]) avec param1[, param2] est conforme au constructeur parent