Gambas France BETA

Connexion

Pas de compte ? Incription

Le Polymorphisme :

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 :



====================