Salut,
Je peux donner un exemple concret utilisé dans un de mes projets de DUT :
Un jeu d'Abalone.
Dans ce jeu, on avait un plateau de Billes.
Le Problèmes est qu'on ne sait pas de quelle couleur sont ces billes.
On a dont codé une interface Bille.
Cette interface Bille contenait les fonctions estBlanche(), estNoire() et estVide(), toutes les trois retournant un booleen.
Ensuite, nous avons crée les trois classes BilleNoire, BilleBlanche, CaseVide, toutes les trois implémentant l'interface Bille, et donc redéfinissant les trois fonctions sus-citées.
Ces trois fonctions dans ces trois classes ne retournent pas la même chose. estNoire() retourne true dans la classe BilleNoire, et false dans les deux autres, et ainsi de suite.
Il a ensuite suffi de créer un tableau de Bille comme ceci :
d'une taille n et de le remplire de billes noires, blanches et cases vides.
A n'importe quel moment du jeu, il suffisait de faire, pour savoir si la bille à l'endroit (x,y) était une bille noire par exemple,
if (plateau[x][y].estNoire())
On voit bien là que j'appelle la fonction sur un type Bille, ca ne devrait pas fonctionner. Pourtant ici intervient le concept de polymorphisme.
Je pense que tu devrais t'orienter vers la compréhension de ce concept pour bien saisir l'interet des interfaces.
Cordialement
Fred
Partager