En programmation, l'héritage et le polymorphisme sont deux concepts fondamentaux orientés objet. Dans Dart, ces concepts sont mis en œuvre de manière très efficace et intuitive. Commençons par l'héritage.
Héritage
L'héritage est un mécanisme qui permet à une classe d'hériter des propriétés et des méthodes d'une autre classe. La classe dont elle hérite est appelée une sous-classe ou une classe dérivée, et la classe dont elle hérite est appelée une superclasse ou une classe de base.
Dans Dart, l'héritage est implémenté à l'aide du mot-clé 'extends'. Par exemple, considérons la classe de base « Animal » suivante :
Nous pouvons créer une sous-classe 'Dog' qui hérite de 'Animal' comme suit :
Désormais, un objet de la classe 'Dog' peut accéder à la fois à la méthode 'eat()' de la classe de base 'Animal', et à la méthode 'bark()' de la classe elle-même :
C'est un héritage. La classe 'Dog' hérite de toutes les propriétés et méthodes de la classe 'Animal' et peut également ajouter ses propres méthodes et propriétés.
Polymorphisme
Le polymorphisme est un concept qui permet à un objet d'être traité comme une instance d'une classe de base, même s'il s'agit en réalité d'une instance d'une sous-classe. Ceci est très utile lorsque vous souhaitez écrire du code capable de gérer des objets de nombreuses classes différentes, à condition que toutes ces classes soient des sous-classes d'une certaine classe de base.
Dans Dart, le polymorphisme est implémenté via l'utilisation de variables de type de base pour référencer des objets de sous-classe. Par exemple, considérons la classe de base suivante « Shape » et deux sous-classes « Circle » et « Square » :
Maintenant, nous pouvons créer une fonction qui accepte un objet de type 'Shape' et appelle la méthode 'draw()' dessus :
Nous pouvons ensuite passer un objet 'Circle' ou 'Square' à cette fonction, et la méthode 'draw()' appropriée sera appelée :
C'est du polymorphisme. La fonction 'drawShape()' peut gérer n'importe quel objet qui est une instance de 'Shape' ou de l'une de ses sous-classes.
En résumé, l'héritage et le polymorphisme sont deux concepts très puissants de la programmation orientée objet qui vous permettent d'écrire du code plus réutilisable et plus flexible. Dans Dart, ces concepts sont implémentés de manière très intuitive et facile à utiliser, faisant de Dart un excellent choix pour le développement d'applications.