Programmation fonctionnelle - Polymorphisme

Le polymorphisme, en termes de programmation, signifie réutiliser plusieurs fois un même code. Plus précisément, c'est la capacité d'un programme à traiter les objets différemment selon leur type de données ou leur classe.

Le polymorphisme est de deux types -

  • Compile-time Polymorphism - Ce type de polymorphisme peut être obtenu en utilisant une surcharge de méthode.

  • Run-time Polymorphism - Ce type de polymorphisme peut être obtenu en utilisant la substitution de méthode et des fonctions virtuelles.

Avantages du polymorphisme

Le polymorphisme offre les avantages suivants -

  • Il aide le programmeur à réutiliser les codes, c'est-à-dire que les classes une fois écrites, testées et implémentées peuvent être réutilisées selon les besoins. Gain de temps.

  • Une seule variable peut être utilisée pour stocker plusieurs types de données.

  • Facile à déboguer les codes.

Types de données polymorphes

Les types de données polymorphes peuvent être implémentés à l'aide de pointeurs génériques qui stockent une adresse d'octet uniquement, sans le type de données stockées à cette adresse mémoire. Par exemple,

function1(void *p, void *q)

p et q sont des pointeurs génériques qui peuvent contenir int, float (ou toute autre) valeur comme argument.

Fonction polymorphe en C ++

Le programme suivant montre comment utiliser les fonctions polymorphes en C ++, qui est un langage de programmation orienté objet.

#include <iostream> 
Using namespace std: 

class A {  
   public: 
   void show() {    
      cout << "A class method is called/n"; 
   } 
}; 

class B:public A { 
   public: 
   void show() {   
      cout << "B class method is called/n"; 
   } 
};  

int main() {   
   A x;        // Base class object 
   B y;        // Derived class object 
   x.show();   // A class method is called 
   y.show();   // B class method is called 
   return 0; 
}

Il produira la sortie suivante -

A class method is called 
B class method is called

Fonction polymorphe en Python

Le programme suivant montre comment utiliser les fonctions polymorphes en Python, qui est un langage de programmation fonctionnel.

class A(object): 
   def show(self): 
      print "A class method is called" 
  
class B(A): 
   def show(self): 
      print "B class method is called" 
  
def checkmethod(clasmethod): 
   clasmethod.show()  

AObj = A() 
BObj = B() 
  
checkmethod(AObj) 
checkmethod(BObj)

Il produira la sortie suivante -

A class method is called 
B class method is called