🤔 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.