6.3. Programmation orientée objet en Python : héritage et polymorphisme
La programmation orientée objet (POO) est un paradigme de programmation qui permet de structurer des programmes de manière à ce que les propriétés et les comportements soient regroupés en objets individuels. Python est un langage de programmation orienté objet et cela sera au centre de notre discussion dans ce chapitre, axé sur l'héritage et le polymorphisme.
Héritage en Python
L'héritage est un concept fondamental de POO qui vous permet de créer une nouvelle classe qui est une version modifiée d'une classe existante. La classe d'origine est appelée classe de base ou classe parent, et la nouvelle classe est appelée classe dérivée ou classe enfant. La classe enfant hérite de tous les attributs et comportements de la classe parent, mais peut également en ajouter de nouveaux ou modifier ceux existants.
En Python, l'héritage est déclaré en passant la classe parent en tant que paramètre à la classe enfant. Voici un exemple :
Dans l'exemple ci-dessus, la classe Dog hérite de la classe Animal. Cela signifie qu'un objet Dog a un attribut name et une méthode bark().
Polymorphisme en Python
Le polymorphisme est un autre concept fondamental de POO qui fait référence à la capacité d'un objet à prendre de nombreuses formes. En Python, le polymorphisme est implémenté de deux manières : la surcharge de méthode et le remplacement de méthode.
La surcharge de méthodes fait référence à la capacité d'une classe à avoir plusieurs méthodes avec le même nom mais des paramètres différents. En Python, la surcharge de méthode est effectuée à l'aide d'arguments par défaut ou d'arguments variables.
Voici un exemple de surcharge de méthode en Python :
Dans l'exemple ci-dessus, la méthode Area() peut être appelée avec zéro, un ou deux arguments.
Le remplacement de méthode fait référence à la capacité d'une classe enfant à modifier l'implémentation d'une méthode dont elle a hérité de sa classe parent. Cela se fait simplement en déclarant une méthode dans la classe enfant avec le même nom que la méthode dans la classe parent.
Voici un exemple de remplacement de méthode en Python :
Dans l'exemple ci-dessus, la classe Dog remplace la méthode sound() de la classe Animal.
En résumé, la programmation orientée objet en Python, avec l'utilisation de l'héritage et du polymorphisme, vous permet de créer du code flexible et réutilisable. L'héritage vous permet de créer de nouvelles classes à partir de classes existantes, et le polymorphisme permet de traiter de la même manière des objets de différentes classes. Ces concepts sont fondamentaux pour créer des logiciels complexes et constituent une partie essentielle de tout cours Python.