Langage Python

Polymorphisme en Python

Le mot polymorphisme signifie avoir plusieurs formes. En programmation, polymorphisme signifie que le même nom de fonction (mais des signatures différentes) est utilisé pour différents types.

En Python, Polymorphism nous permet de définir des méthodes dans la classe enfant portant le même nom que les méthodes de la classe mère. En héritage, la classe enfant hérite des méthodes de la classe mère. Toutefois, il est possible de modifier une méthode dans une classe enfant héritée de la classe mère. Ceci est particulièrement utile dans les cas où la méthode héritée de la classe mère ne convient pas tout à fait à la classe enfant. Dans ce cas, nous réimplémentons la méthode dans la classe enfant. Ce processus de réimplémentation d'une méthode dans la classe enfant s'appelle une méthode redéfinie.

    class Personne:
        def __init__(self,nom):
            self.nom=nom
        
        def affiche(self):
            print("je suis une personne")
    
    class Etudiant(Personne):
        def __init__(self,nom,cne):
            super().__init__(nom)  
            self.cne=cne
        
        def affiche(self):
            print("je suis un etudiant")
    
    class Professeur(Personne):
        def __init__(self,nom,ppr):
            super().__init__(nom)  
            self.ppr=ppr
        
        def affiche(self):
            print("je suis un professeur")
    
    tab=[]
    etd=Etudiant('Kayouh',123444)
    tab.append(etd)
    
    prf=Professeur('ESSADDOUKI',123123123)
    tab.append(prf)
    
    for obj in tab:
        obj.affiche()
    je suis un etudiant
    je suis un professeur 

Polymorphisme avec une fonction et des objets

Il est également possible de créer une fonction pouvant accepter n’importe quel objet, permettant ainsi un polymorphisme. Dans cet exemple, créons une fonction appelée «ShowMe()» qui prendra un objet que nous nommerons «obj». Bien que nous utilisions le nom "obj", tout objet instancié pourra être appelé dans cette fonction.

Cette méthode appellera la méthode "affiche()" associée à l'objet actuel "obj"

    class Personne:
        def __init__(self,nom):
            self.nom=nom
        
        def affiche(self):
            print("je suis une personne")
    
    class Etudiant(Personne):
        def __init__(self,nom,cne):
            super().__init__(nom)  
            self.cne=cne
        
        def affiche(self):
            print("je suis un etudiant")
    
    class Professeur(Personne):
        def __init__(self,nom,ppr):
            super().__init__(nom)  
            self.ppr=ppr
        
        def affiche(self):
            print("je suis un professeur")
    

    def ShowMe(obj):
        obj.affiche()
    
    etd=Etudiant('Kayouh',123444)
    prf=Professeur('ESSADDOUKI',123123123)
    
    ShowMe(etd)
    ShowMe(prf)
    je suis un etudiant
    je suis un professeur 

Partager ce cours avec tes amis :
Rédigé par Mostafa Sedoki
Computer science teacher and the founder of the e-learning platform "developpement-informatique.com", my mission is to provide high-quality courses for free to all computer science students and teachers

Cours Similaires :