Avec Objis, spécialiste Java depuis 2005, maîtrisez les notions clés de ‘Surcharge’ et de ‘Redéfinition’ en Java. Comprenez la différence entre ces notions, ainsi que leur cas d’utilisation.
Auteur
Douglas MBIANDOU. Président Objis . Concepteur formation ‘Nouveautés Java 8 et 9’
Prérequis
le tutoriel Mettre en œuvre la notion d’héritage en Java
Objectifs
Modifier l’implémentation du digramme de classes UML
Mise en œuvre de la surcharge
Mise en œuvre de redéfinition et du polymorphysme
Programme
Partie 1 : Diagramme UML
Partie 2 : Surcharge
Partie 3 : Redéfinition
conclusion
Durée
30 minutes.
Partie 1 : Diagramme UML
Implémentation du diagramme de classes UML suivant
Les attributs soulignés de la classe DemandeFormation , correspondent à des attributs static. Pour mémoire , ces attributs sont accessibles en dehors de toute instanciation .
Partie 2 : La surcharge
La surcharge d’une méthode ou d’un constructeur permet de définir plusieurs fois une même méthode/constructeur avec des arguments différents.
Le compilateur choisit la méthode qui doit être appelée en fonction du nombre et du type des arguments .
Surcharge de constructeur
Surcharger les constructeurs de Employe , Manager et DemandeFormation via le mot clef java this
Exemple 1:
Exemple 2:
Expliquez
Partie 3 : La redéfinition
La redéfinition d’une méthode héritée doit impérativement conserver la déclaration de la méthode parent (type et nombre de paramètres, la valeur de retour et les exceptions propagées doivent être identiques).
Si la signature de la méthode change, ce n’est plus une redéfinition mais une surcharge. Cette nouvelle méthode n’est pas héritée : la classe mère ne possède pas de méthode possédant cette signature .
La redéfinition de la méthode demanderFormation dans la classe Manager exprime le fait que le savoir faire métier est différent dans les deux classes :
— La méthode demanderFormation() pour l’employé déclenche une demande avec une attente de validation.
— La méthode demanderFormation() pour le manager déclenche une demande qui est automatiquement validée .
Redéfinir la méthode demanderFormation() de la classe Manager
Exemple :
On constate qu’une partie du code de demanderFormation() est identique dans les deux classes Employe et Manager .
Pour éviter la duplication de code , une bonne façon de faire est la suivante :
Redéfinir la méthode toString() héritée de la super classe Object, afin de tracer les caractéristiques d’un objet
La méthode toSring() est automatiquement invoquée lorsque l’on souhaite tracer un objet.
Renverra la chaîne :
Par défaut la méthode toString() retourne le nom de la classe d’instanciation de l’objet, suivi de sa référence.
Modifier le lanceur LanceurGestionFormations afin de :
- procéder à différentes instanciations (différents constructeurs)
- tracer l’état des objets
Tester le lanceur LanceurGestionFormations et vérifier la redéfinition de la méthode demanderFormation .
Correction
GestionFormations-Surcharge-Redefinition
Conclusion
Dans ce tutoriel vous avez mis en œuvre la notion de surcharge et de redéfinition.
Dans le tutoriel suivant ‘tutoriel Java N°11′, vous allez découvrir comment manipuler des collections d’objets en java’.
Donner votre avis sur ce Tuto objis.com
Professionnels : maîtrisez les nouveautés Java 8 et 9 !
A travers notre nouvelle formation Nouveautés Java 8 et 9 (durée 4 jours) conçue par l’auteur de ce tutoriel, découvrez par la pratique le nouveau système de Modules Java 9 (Encapsulation forte + Intercafes + Dépendances explicites) ainsi que les spécificités de Java 8 (Streams, Lambda, Optional…). Maîtrisez également la méthodologie de migration de votre code vers Java 9. Un sérieux atout pour votre employabilité et l’évolution de votre carrière professionnelle !. Contactez-nous dès maintenant !