Tutoriel Python - Héritage des classes

  1. Héritage de la classe Python - Substitution de méthodes
  2. Classe Python Héritage multiple
  3. Héritage multiniveau de la classe Python

Dans cette section, vous apprendrez l’héritage de la programmation orientée objet Python.

Dans la section Héritage, une classe enfant est créée à partir d’une classe parent. La classe enfant hérite de tout (membres de données et fonctions membres) de la classe parente.

Voici la syntaxe de l’héritage en Python:

class ParentClass:
    #members
class ChildClass(ParentClass):
    #members

Dans la classe enfant, vous avez toutes les fonctionnalités de la classe parente et de nouvelles fonctionnalités peuvent également être ajoutées.

Comme dans l’exemple ci-dessous, elle a une classe parente nommée Auto et une classe enfant car est héritée de celle-ci.

>>> class Auto:
	def __init__(self, e, n):
		self.engine = e
		self.name = n
	def display(self):
		print("Name of Auto: ", self.name)
		print("Engine of auto: ", self.engine)

		
>>> class Car(Auto):
	def __init__(self):
		self.x= input("Enter name of car: ")
		self.y= input("Enter engine of car: ")
		Auto.__init__(self,self.y,self.x)

		
>>> c = Car()
Enter name of car: Prius
Enter engine of car: 1.5l
>>> c.display()
Name of Auto:  Prius
Engine of auto:  1.5l

Vous pouvez voir ici que les méthodes de la classe Auto peuvent être utilisées dans la classe Car. C’est parce que la classe Car est héritée de Auto.

A l’intérieur du constructeur de Car, le constructeur de Auto est appelé. L’objet de Car peut être utilisé pour appeler toutes les méthodes de Auto.

Héritage de la classe Python - Substitution de méthodes

La méthode est prioritaire lorsque vous avez les mêmes méthodes pour les classes enfant et parent. La méthode est un concept dans lequel une classe enfant change l’implémentation des méthodes de sa classe parent.

Considérons l’exemple où la classe enfant Car a la même méthode d’affichage que la classe Auto mais l’implémentation est modifiée:

>>> class Auto:
	def __init__(self, e, n):
		self.engine = e
		self.name = n
	def display(self):
		print("Name of Auto: ", self.name)
		print("Engine of auto: ", self.engine)

		
>>> class Car(Auto):
	def __init__(self):
		self.x= input("Enter name of car: ")
		self.y= input("Enter engine of car: ")
		Auto.__init__(self,self.y,self.x)
    def display(self):
		print("You are in child class")

		
>>> c = Car()
Enter name of car: Prius
Enter engine of car: 1.5l
>>> c.display()
You are in child class

Donc maintenant, quand la méthode d’affichage est appelée dans l’objet c, la méthode de la classe fille est invoquée.

Classe Python Héritage multiple

L’héritage multiple se produit lorsqu’une classe enfant a plus d’une classe parentale. Les fonctionnalités de chaque classe parent sont héritées par la classe enfant.

La syntaxe de l’héritage multiple est la suivante

class A:
    #members
class B:
    #members
class child(A, B):
    #members

Exemple :

>>> class A:
	def dispA(self):
		print('You are in class A')

		
>>> class B:
	def dispB(self):
		print('You are in class B')

		
>>> class C(A, B):
	def dispC(self):
		print('You are in class C')

>>> Cobj = C()
>>> Cobj.dispA()
You are in class A

>>> Cobj.dispB()
You are in class B

>>> Cobj.dispC()
You are in class C

Il est à noter que l’objet de C' (classe enfant) peut appeler les méthodes de ses classes parentesA’ et B. Par conséquent, vous pouvez dire que C hérite de tout ce qui est A et B.

Héritage multiniveau de la classe Python

L’héritage multiniveau se produit lorsque vous héritez d’une classe enfant d’une autre classe enfant.

La syntaxe de l’héritage multiniveau est la suivante:

class A:
    #members
class B(A):
    #members
class C(B):
    #members

Exemple:

>>> class A:
	def dispA(self):
		print('You are in class A')

		
>>> class B(A):
	def dispB(self):
		print('You are in class B')

		
>>> class C(B):
	def dispC(self):
		print('You are in class C')
        
>>> Cobj = C()

>>> Cobj.dispA()
You are in class A

>>> Cobj.dispB()
You are in class B

>>> Cobj.dispC()
You are in class C

Vous pourriez voir ici que la classe C peut invoquer les méthodes de ses classes parentes et grand-parentes.

comments powered by Disqus