🤔 Connaissez-vous l’héritage ?
L’héritage nous permet de créer de nouvelles classes qui réutilisent, étendent et/ou modifient le comportement des classes préexistantes. La classe préexistante est appelée superclasse et la nouvelle classe que nous créons est appelée classe dérivée. Dans Dart, nous ne pouvons hériter que d’une seule superclasse, mais l’héritage est transitif. Si le class Hatch
est dérivé du class Car
et que cette classe est dérivée du class Vehicle
, alors Hatch sera dérivé de Vehicle. Utilisez extends
pour créer la classe dérivée, et super
lorsque vous voulez faire référence à la superclasse.
Lorsque class Car extends Vehicle
, toutes les propriétés, variables, fonctions implémentées dans class Vehicle
seront disponibles dans class Car
.
Il est également possible d’écraser les fonctions de la superclasse.
Donc : Vous utilisez extends
lorsque vous voulez créer une version plus spécifique d’une classe.
2⃣️ Using implements
Supposons que vous voulez créer votre propre classe Car, sans hériter de toutes les propriétés, variables et fonctions de la classe Vehicle, mais que vous voulez hériter uniquement du type Vehicle. Pour ce faire, la classe Car doit implémenter l’interface Vehicle.
Dart vous permet d’implémenter plusieurs classes ou interfaces.
✍️ Exemple
Imaginez que vous devez implémenter un oiseau et un canard, tous deux sont des animaux, mais l’oiseau ne peut que voler et le canard peut voler et nager. Nous allons le faire en utilisant ce que nous savons jusqu’à présent.
D’abord, nous allons créer la superclasse et les comportements:
Maintenant, nous allons créer Bird
et Duck
, en implémentant les comportements appropriés:
Notez, qu’en utilisant implements
nous avons dû implémenter les fonctions fly
et swim
, en répétant le code ! Il n’était pas possible d’hériter des implémentations du comportement de cette façon. Existe-t-il un moyen de réutiliser le code de ces comportements ? Oui, nous verrons après!
3⃣️ Utiliser avec
Le mixin est un type différent de structure, qui ne peut être utilisé qu’avec le mot-clé with
et est utilisé pour inclure des extraits de code communs, je dirais, réutiliser le code.
Les mixins sont une façon de réutiliser le code d’une classe dans de multiples hiérarchies de classes (dartlang.org).
Voici comment les mixins exécutent l’implémentation précédente :
Vous pouvez remplacer abstract class
par mixin
si vous préférez.
Les mixins sont un moyen d’abstraire et de réutiliser une famille d’opérations et d’état, c’est similaire à la réutilisation que vous obtenez en étendant une classe, mais ce n’est pas des héritages multiples, il n’y a toujours qu’une seule superclasse. Ils fonctionnent en plaçant l’implémentation du mixin au-dessus de la superclasse pour créer une nouvelle classe. Dans l’exemple ci-dessus, il est possible de réécrire une fonction, les mixins le permettent.
✌️Thanks
C’était ma première histoire sur Medium, j’espère que vous avez aimé 😃.
Je tiens à remercier Romain Rastel pour cette incroyable histoire sur les mixins, je vous conseille de lire pour comprendre encore plus sur ce sujet.
Si vous avez des questions, n’hésitez pas à les poser ci-dessous.