Tutoriel Python - Héritage des classes

Jinku Hu 30 janvier 2023
  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
Tutoriel Python - Héritage des classes

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 parentes A 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.

Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook