La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

JAVA et POO : Notion d'héritage

Présentations similaires


Présentation au sujet: "JAVA et POO : Notion d'héritage"— Transcription de la présentation:

1 JAVA et POO : Notion d'héritage

2 Modèle objet : les classes
Voici quelques éléments : Véhicule, voiture, moto, 4*4, monospace Personne, étudiant, salarié, commerçant Animal, lion, chien, chat, tigre, poisson rouge Décrivez les classes correspondantes

3 Héritage par la généralisation
La généralisation c'est : Factoriser les éléments communs d'un ensemble de classe : Attributs Méthodes Parmi les éléments précédents, faites apparaître l'héritage par généralisation (éléments communs)

4 La généralisation exemple
Comparons les comptes chèques et les comptes d'épargne : Appliquez le principe de généralisation

5 Modèle objet : l'héritage
Création d'une classe regroupant les caractéristiques communes Tous les attributs de la classe parent (super classe) sont des caractéristiques d'un objet créé à partir de la classe enfant L'héritage se représente avec un trait terminé par un triangle du côté de la classe la plus générale

6 Modèle objet : la spécialisation
Une classe spécialisée hérite de : Toutes les caractéristiques de la classe parent A le même comportement que la classe parent A ses comportements propres Grâce à ses caractéristiques personnelles Attributs méthodes

7 Héritage : généralisation / spécialisation
La généralisation exprime la relation : est-un entre une classe et sa super classe La spécialisation définit un comportement supplémentaire G é n r a l i s t o Animal AnimalSauvage - lieuDeVie - modeAlimentation S p é c i a l s t o n Super classe

8 Modèle objet : l'héritage
L'héritage c'est : Le mécanisme permettant de dériver une classe à partir d'une classe existante L'héritage permet de classer Étendre structurellement et comportementalement une classe Permet de construire Réutiliser le code d'une classe existante

9 Modèle objet : l'héritage
Classe dérivée (ou classe enfant)‏ Hérite de toutes les caractéristiques de son (ses) ancêtre(s)‏ Peut avoir des caractéristiques propres Peut redéfinir des caractéristiques héritées

10 Toutes les classes en java forment un arbre d'héritage
java : l'héritage Héritage simple : Une classe ne peut hériter que d'une autre classe 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 la classe Object

11 java : l'héritage Définir une classe dérivée Complétez les classes
extends par défaut : extends Object class CompteBancaire { } class CompteEpargne extends CompteBancaire { class TestCompteEpargne { public static void main( String [] arg ) { //... CompteEpargne ce; double interet; ce = new CompteEpargne(); ce.deposer( ); interet = ce.calculerInterets(); } CompteBancaire.java TestCompteEpargne.java CompteEpargne.java Complétez les classes

12 l'héritage et les accès parents
public class A { public void hello() { System.out.println("Hello"); } public class B extends A { public void bye() System.out.println("Bye Bye"); public class C extends B { public void oups() System.out.println("oups!"); Donnez le diagramme de classe A partir d'une instance de la classe C, comment afficher les messages des trois classes ?

13 java : l'héritage Appel du constructeur de la classe parent:
En l’absence de constructeur, appel le constructeur par défaut de la classe mère Le compilateur insère un appel à la méthode super()‏ Conseil: Pour éviter tout problème, toujours définir un constructeur !! Pour invoquer un constructeur de la classe mère : mot clé super()‏ super(...) : doit être la première instruction du constructeur fils. class CompteEpargne extends CompteBancaire { private double taux; CompteEpargne (double soldeInit, double tauxInit) { super ( soldeInit ); taux = tauxInitial; } //... class CompteBancaire { private double solde; CompteBancaire ( double soldeInitial ) { solde = soldeInitial; } // .. Appel du constructeur de CompteBancaire

14 l'arbre d'héritage Ordre d'appel des constructeurs
L'appel à un constructeur de la super classe doit toujours être la première instruction dans le corps du constructeur Si la première instruction d'un constructeur n'est pas un appel explicite à l’un des constructeurs de la superclasse, alors JAVA insère implicitement l'appel super()‏

15 l'arbre d'héritage (suite)‏
Chaque fois qu'un objet est créé, les constructeurs sont invoqués en remontant en séquence de classe en classe dans la hiérarchie jusqu'à la classe Object C'est le corps du constructeur de la classe Object qui est toujours exécuté en premier, suivi du corps des constructeurs des différentes classes en redescendant dans la hiérarchie.

16 l'arbre d'héritage (exemple)‏

17 Quelques règles de visibilité
Rappel : Les valeurs des attributs privés ne sont modifiables QUE dans la classe elle-même. Or, une classe dérivée DOIT avoir accès à tous les attributs de la classe mère. Les attributs de la classe mère ne doivent donc pas être privés, mais protégés.

18 Quelques règles de visibilité
Pour déclarer un attribut protégé, on utilise le mot clef : protected Le symbole pour la représentation graphique est le #

19 Quelques règles de visibilité
ClasseMère ClasseDérivée public défaut protected private Accessible dans la ClasseMère Accessible dans la ClasseDérivée oui non Les qualificatifs s'appliquent aux attributs et aux méthodes

20 Rappel de la symbolique
Symbole Signification + public - private # protected La classe Lion hérite de la classe Animal. Lion est un Animal

21 Complétez les classes avec les constructeurs manquants.
Une méthode afficher() pour chaque classe. Complétez le diagramme de classe. Une classe de test.


Télécharger ppt "JAVA et POO : Notion d'héritage"

Présentations similaires


Annonces Google