Académique Documents
Professionnel Documents
Culture Documents
Laila AMIR
Laila AMIR 1 / 16
L’héritage simple
L’héritage & Polymorphisme
Plan
1 L’héritage simple
Déclaration de l’héritage
Constructeurs classe fille - classe mère
Surcharger un attribut, une fonction
Laila AMIR 2 / 16
L’héritage simple
Constructeurs classe fille - classe mère
L’héritage & Polymorphisme
Surcharger un attribut, une fonction
Outline
1 L’héritage simple
Déclaration de l’héritage
Constructeurs classe fille - classe mère
Surcharger un attribut, une fonction
Laila AMIR 3 / 16
L’héritage simple
Constructeurs classe fille - classe mère
L’héritage & Polymorphisme
Surcharger un attribut, une fonction
L’héritage de classe
Laila AMIR 4 / 16
L’héritage simple
Constructeurs classe fille - classe mère
L’héritage & Polymorphisme
Surcharger un attribut, une fonction
Ici, super() est une référence implicite à la classe mère (le terme
super-classe est un synonyme de classe mère). À ce titre, cela
vous dispense d’utiliser le self lors de l’appel.
Laila AMIR 5 / 16
L’héritage simple
Constructeurs classe fille - classe mère
L’héritage & Polymorphisme
Surcharger un attribut, une fonction
Laila AMIR 6 / 16
L’héritage de classe
L’héritage simple
Redéfinition de méthode
L’héritage & Polymorphisme
Polymorphisme
Outline
1 L’héritage simple
Déclaration de l’héritage
Constructeurs classe fille - classe mère
Surcharger un attribut, une fonction
Laila AMIR 7 / 16
L’héritage de classe
L’héritage simple
Redéfinition de méthode
L’héritage & Polymorphisme
Polymorphisme
L’héritage de classe
Laila AMIR 8 / 16
L’héritage de classe
L’héritage simple
Redéfinition de méthode
L’héritage & Polymorphisme
Polymorphisme
L’héritage de classe
On peut toujours instancier la classe Voiture si on le désire :
1 >>> ma_voiture=Voiture()
2 >>> ma_voiture.nom
3 'A déterminer'
4 >>> ma_voiture.roues
5 4
Redéfinition de méthode
Comme nous l’avons vu plus haut si une classe hérite d’une
autre classe, elle hérite les méthodes de son parent .
1 class Voiture:
2 roues = 4
3 moteur = 1
4 def __init__(self):
5 self.nom = "A déterminer"
6 def allumer(self):
7 print "La voiture démarre"
8 class VoitureSport(Voiture):
9 def __init__(self):
10 self.nom = "Ferrari"
11
12 ma_voiture_sport = VoitureSport()
13 ma_voiture_sport.allumer()
Le résultat :
La voiture démarre
Laila AMIR 10 / 16
L’héritage de classe
L’héritage simple
Redéfinition de méthode
L’héritage & Polymorphisme
Polymorphisme
Redéfinition de méthode
Il est possible d’ écraser la méthode de la classe parente en la
redéfinissant. On parle de redéfinition d’une méthode.
1 class Voiture:
2 roues = 4
3 moteur = 1
4 def __init__(self):
5 self.nom = "A déterminer"
6 def allumer(self):
7 print "La voiture démarre"
8 class VoitureSport(Voiture):
9 def __init__(self):
10 self.nom = "Ferrari"
11 def allumer(self):
12 print "La voiture de sport démarre"
13 ma_voiture_sport = VoitureSport()
14 ma_voiture_sport.allumer()
Le résultat :
La voiture de sport démarre
Laila AMIR 11 / 16
L’héritage de classe
L’héritage simple
Redéfinition de méthode
L’héritage & Polymorphisme
Polymorphisme
Redéfinition de méthode
Enfin dernier point intéressant : il est possible d’appeler la
méthode du parent puis de faire la spécificité de la méthode.
1 class Voiture :
2 roues = 4 Le résultat :
3 moteur = 1
4 def __init__(self): La voiture démarre
5 self.nom = "A déterminer" La voiture de sport démarre
6 def allumer(self):
7 print "La voiture démarre" Les classes Voiture et Voi-
8 class VoitureSport(Voiture):
9 def __init__(self):
tureSport possédent donc cha-
10 self.nom = "Ferrari" cune une méthode de même
11 def allumer(self): nom mais ces méthodes n’éffec-
12 Voiture.allumer(self) tuent pas les mêmes tâches. On
13 print "La voiture de sport
parle dans ce cas de polymor-
,→ démarre"
14 ma_voiture_sport = VoitureSport() phisme .
15 ma_voiture_sport.allumer()
Laila AMIR 12 / 16
L’héritage de classe
L’héritage simple
Redéfinition de méthode
L’héritage & Polymorphisme
Polymorphisme
Notion polymorphisme
Laila AMIR 13 / 16
L’héritage de classe
L’héritage simple
Redéfinition de méthode
L’héritage & Polymorphisme
Polymorphisme
Laila AMIR 14 / 16
L’héritage de classe
L’héritage simple
Redéfinition de méthode
L’héritage & Polymorphisme
Polymorphisme
Laila AMIR 15 / 16
L’héritage de classe
L’héritage simple
Redéfinition de méthode
L’héritage & Polymorphisme
Polymorphisme
10 self.cne=cne 7 ShowMe(etd)
11 def affiche(self): 8 ShowMe(prf)
12 print("je suis un etudiant")
13 class Professeur(Personne): Résultat :
14 def __init__(self,nom,ppr):
15 super().__init__(nom) je suis un etudiant
16 self.ppr=ppr je suis un professeur
17 def affiche(self):
18 print("je suis un professeur")
Laila AMIR 16 / 16