Voici un concept très important pour créer vos classes et surtout leur ajouter des méthodes supplémentaires.
Le cours vidéo ci-dessous vous explique en détail la technique « override ».
[ppmaccordion][ppmtoggle title= »Afficher le texte de la vidéo »]
Comment ajouter des nouvelles méthodes avec l’héritage ?
Bonjour à tous et bienvenu dans Développement Facile.
Pour aller un peu plus loin dans la notion d’héritage, aujourd’hui vous allez découvrir comment ajouter des nouvelles méthodes avec l’héritage, ou modifier des méthodes existantes, surtout quand vous héritez d’une classe, il y a des méthodes que vous souhaitez peut-être modifier dans la classe fille, et c’est ce que vous allez apprendre directement à travers ce cours.
Le polymorphisme
Alors ça s’appelle, le polymorphisme, vous avez peut-être déjà entendu ce mot, le polymorphisme je l’ai déjà dit dans d’autres cours. En fait tout simplement, c’est l’utilisation d’un même nom de méthode pour plusieurs types d’objets différents, et vous n’avez pas besoin de savoir le type précis de l’objet sur lequel la méthode va s’appliquer, vous avez juste besoin de savoir que cet objet implémentera bien cette méthode. La méthode que vous attendez, c’est ça le polymorphisme.
Combiné à l’héritage
Donc combiné à l’héritage, l’héritage d’une classe vous apporte, comme vous le savez, toutes ses méthodes, toutes les variables, en tout cas les méthodes qui sont un public ou protected. Pareil pour les variables, et vous pouvez redéfinir des méthodes d’héritées, c’est ça l’intérêt de la combinaison à l’héritage, c’est de pouvoir redéfinir les méthodes que vous avez héritées. Donc en gros c’est la possibilité d’utiliser un nom de méthode identique mais avec un comportement soit différent, mais en utilisant en même temps le comportement de la classe mère ou alors un comportement totalement différent.
La classe Voiture
Par exemple nous prenons la classe voiture, vous avez une méthode getDetails, qui renvoie une chaîne de caractères, donc toutes les informations de la classe voiture avec les options, le nom, la marque, le nombre de places etc.
La classe Renault
Vous créez une classe Renault qui étend la classe Voiture, et vous souhaitez réutiliser la méthode getDetails, par contre vous voulez la modifier, qu’est-ce que vous faites ?
Et bien vous appelez super.getDetails, ça veut dire que ça va appeler getDetails de la méthode de la classe mère, donc de la classe voiture. Vous récupérez votre chaîne de caractères parce que getDetails ça renvoi une chaîne de caractères, et à la fin, vous ajoutez « Renault » donc pour tous les objets de la classe Renault, il y aura à la fin de la chaîne de caractères, le suffixe « Renault ». Donc c’est le mot clé, override, ici, qui va vous permettre d’overrider, d’écraser la méthode de la classe mère, pour en faire ce dont vous avez besoin.
Utilisation avec plusieurs types d’objets
Je vous montre un petit exemple en ActionScript, donc la classe voiture, que vous avez ici, vous connaissez bien avec getDetails et la classe Renault, qui profite de l’héritage de la classe voiture, donc avec le même constructeur, là vous appelez directement le constructeur de la classe mère, et là vous faites un override, un écrasement de la classe getDetails de la classe mère, et vous la remplacez par votre propre comportement, pour la classe Renault, en appelant la méthode getDetails de la classe mère.
Vous pouvez appeler la même méthode sur des types d’objets différents grâce aux polymorphismes. C’est-à-dire, soit ces objets implémente une interface, soit elle profite de l’héritage, par exemple vous créez des objets new voiture, blanc, Airbus, A380 etc. avec un tableau.
Un autre objet dans un tableau, vous rajoutez new voiture, bleue, VTT, gitane.
Une voiture Renault, Mégane et quand vous parcourez votre tableau, donc que vous n’avez pas besoin de savoir le type de votre objet, vous savez, par défaut parce que c’est vous qui avez ajouté des éléments dans le tableau, voiture, voiture, Renault, et que tous ces éléments ont la méthode getDetails donc vous pouvez l’appelée sans problème.
Les avantages du polymorphisme
Donc, les avantages du polymorphisme c’est une technique vraiment très puissante, surtout avec l’héritage d’une sous-classe, une super classe, vous pouvez définir des méthodes par défaut dans la classe mère, puis les redéfinir dans les différentes classes filles. Et vous pouvez utiliser ces différents objets de la même façon, comme s’il s’agissait exactement de la même classe parce que vous savez qu’il y a le nom de la méthode que vous recherchez, que vous pouvez utiliser. Rappelez-vous un peu les cours sur les classes abstraites, les interfaces c’est le même principe de fonctionnement.
A vous de jouer !
Sous cette vidéo vous trouverez un exemple de code source que vous pouvez télécharger, et je vous encourage comme d’habitude, à vraiment mettre en pratique ce cours donc pensez à écraser les méthodes, si vous en avez besoin évidemment, lorsque vous héritez d’une nouvelle classe. Donc mettez en pratique ce cours dans vos applications, si vous avez des questions comme d’habitude posez-les directement sous ce cours vidéo et je vous dis à très bientôt pour le prochain cours sur Développement Facile.
[/ppmtoggle][/ppmaccordion]
Téléchargez un exemple de code source
Retrouvez le code source en ActionScript 3 qui implémente cet technique override ou polymorphisme.
Téléchargement du code source Code source ActionScript 3 override
Cliquez ici pour télécharger le code source Code source ActionScript 3 override
Dans quels cas utilisez-vous les override ou polymorphisme ?
Partagez, dans les commentaires ci-dessous, vos cas typiques de l’implémentation l’héritage avec l’override ou polymorphisme.