Le Polymorphisme :
Le polymorphisme permet de manipuler deux objets qui se comportent de la même façon sans
avoir à les distinguer. Par exemple, nous aimerions pouvoir écrire une application capable de
crypter tout type de fichier, en faisant abstraction des détails nécessaires à leur manipulation.
Or, afin d’être en mesure de manipuler deux objets différents de la même façon, il est nécessaire
que ces deux objets comprennent, et soit capables d’exécuter, les mêmes instructions. Cela veut
dire que ces objets doivent mettre à disposition les mêmes méthodes dans leurs interfaces
respectives.
Le polymorphisme est un concept fondamental en programmation orientée objet (POO) qui permet à des objets de différentes classes de répondre à la même méthode ou à la même interface de manière différente. En d'autres termes, le polymorphisme permet à une méthode de se comporter différemment selon le type d'objet qui l'appelle.
Exemple de polymorphisme en POO
Supposons que vous avez une classe `Animal` avec une méthode `parler()`. Vous pouvez avoir des sous-classes comme `Chien` et `Chat` qui redéfinissent la méthode `parler()` pour qu'elle se comporte différemment selon l'animal.
```en python
1
2
3
4
5
6
7
8
9
10
11
| CLASS Animal: def parler(self): pass
CLASS Chien(Animal): def parler(self): RETURN "Woof!"
CLASS Chat(Animal): def parler(self): RETURN "Miaou!"
|
Utilisation du polymorphisme
1
2
3
4
| animaux = [Chien(), Chat()]
FOR animal IN animaux: print(animal.parler())
|
```
Dans cet exemple, la méthode `parler()` est polymorphe car elle produit des résultats différents selon que l'objet est une instance de `Chien` ou de `Chat`.
Gambas3 et le polymorphisme
Gambas3 est un environnement de développement intégré (IDE) et un langage de programmation orienté objet inspiré de Visual Basic. Gambas3 supporte également le polymorphisme, comme la plupart des langages orientés objet.
Voici un exemple simple de polymorphisme en Gambas3 :
1
2
3
4
5
6
| ' Définir une classe Animal CLASS Animal PUBLIC SUB parler() PRINT "L'animal parle" END END
|
1
2
3
4
5
6
| ' Définir une classe Chien qui hérite de Animal CLASS Chien AS Animal PUBLIC SUB parler() PRINT "Woof!" END END
|
1
2
3
4
5
6
| ' Définir une classe Chat qui hérite de Animal CLASS Chat AS Animal PUBLIC SUB parler() PRINT "Miaou!" END END
|
1
2
3
4
5
6
7
8
9
| ' Utilisation du polymorphisme PUBLIC SUB Main() DIM animaux AS Animal[] = [NEW Chien(), NEW Chat()] FOR EACH animal AS Animal IN animaux animal.parler() NEXT END
|
Dans cet exemple, la méthode `parler()` est redéfinie dans les classes `Chien` et `Chat`. Lorsque vous appelez `animal.parler()`, Gambas3 détermine automatiquement quelle version de la méthode `parler()` doit être exécutée en fonction du type réel de l'objet.
Conclusion
Le polymorphisme est un concept puissant qui permet de rendre votre code plus flexible et réutilisable. En Gambas3, comme dans d'autres langages orientés objet, vous pouvez exploiter ce concept pour créer des programmes plus modulaires et faciles à maintenir.
====================
Navigation :
<-- Liens du Wiki : <--<-- Sommaire du WIKI : <-- <-- Rappels de Programmation <--====================
Documentation :
====================