web-dev-qa-db-fra.com

"étend" versus "implémente" versus "avec"

Je veux comprendre la différence entre extends, implements et with. Quand utiliser quoi?

40
Keerti Purswani

Étend:

Utilisez étend pour créer une sous-classe et super pour faire référence à la super-classe.

Extends est l'héritage typique de la classe OOP . Si la classe a étend la classe b toutes les propriétés, variables, fonctions implémentées dans classe b sont également disponibles dans la classe a . De plus, vous pouvez remplacer les fonctions, etc.

Vous utilisez extend si vous souhaitez créer une version plus spécifique d'une classe. Par exemple, la classe voiture pourrait étendre la classe véhicule . Dans Dart, une classe ne peut étendre qu'une seule classe.


Implémente:

Chaque classe définit implicitement une interface contenant tous les membres d'instance de la classe et de toutes les interfaces qu'elle implémente. Si vous souhaitez créer une classe A qui prend en charge l'API de classe B sans hériter de l'implémentation de B, la classe A doit implémenter l'interface B.

Implements peut être utilisé si vous souhaitez créer votre propre implémentation d'une autre classe ou interface. Lorsque la classe a implémente la classe b . Toutes les fonctions définies dans la classe b doivent être implémentées.

Lorsque vous implémentez une autre classe, vous n'héritez pas de code de la classe. Vous héritez uniquement du type. Dans Dart, vous pouvez utiliser le mot clé implements avec plusieurs classes ou interfaces.


Avec (Mixins):

Les mixins sont un moyen de réutiliser le code d'une classe dans plusieurs hiérarchies de classes.

With est utilisé pour inclure les mixins. Un mixin est un type de structure différent, qui ne peut être utilisé qu'avec le mot clé with.

Ils sont utilisés dans Flutter pour inclure des extraits de code courants. Un Mixin couramment utilisé est le SingleTickerProviderStateMixin .

45
Niklas