Héritage
Attention :
L'héritage est explicitement hors programme. Ce sujet est toutefois abordé ici car il s'agit d'un élément très important de la programmation orientée objet.
L'héritage ne sera donc pas évalué lors des évaluations en classe ou au baccalauréat.
Définition : Héritage
L’héritage est un mécanisme clé en POO qui permet à une classe d'hériter des attributs et des méthodes d’une autre classe. La classe qui hérite est appelée la sous-classe, tandis que la classe dont elle hérite est appelée la super-classe. L’héritage permet de réutiliser du code et de créer des hiérarchies de classes pour représenter des concepts liés.
En Python, l’héritage est réalisé en définissant une nouvelle classe et en spécifiant la super-classe entre parenthèses après le nom de la nouvelle classe. La nouvelle classe hérite alors des attributs et des méthodes de la super-classe.
Exemple : VeloElectrique
class Velo:
"""Représente un vélo avec une marque, un modèle et une couleur."""def __init__(self, marque, modele, couleur):
"""Initialise les attributs du vélo avec les valeurs données."""self.marque = marque
self.modele = modele
self.couleur = couleur
def rouler(self, distance):
"""Fait rouler le vélo sur la distance donnée."""print(f"Le vélo {self.marque} {self.modele} roule sur {distance} km.")
class VeloElectrique(Velo):
"""Représente un vélo électrique avec une autonomie en plus."""def __init__(self, marque, modele, couleur, autonomie):
"""Initialise les attributs du vélo électrique avec les valeurs données."""super().__init__(marque, modele, couleur)
self.autonomie = autonomie
def rouler(self, distance):
"""Fait rouler le vélo électrique sur la distance donnée."""if distance > self.autonomie:
print(f"Le vélo électrique {self.marque} {self.modele} ne peut pas rouler sur {distance} km.")
returnsuper().rouler(distance)
self.autonomie -= distance
# Création d'un objet VeloElectriquemon_velo = VeloElectrique('Peugeot', 'eC01 D10', 'gris', 50)
# Appel de la méthode rouler sur l'objetmon_velo.rouler(40) # Le vélo Peugeot eC01 D10 roule sur 40 km.
Dans cet exemple, nous avons défini une sous-classe VeloElectrique qui hérite de la classe Velo. La sous-classe VeloElectrique ajoute un nouvel attribut autonomie pour représenter l’autonomie du vélo électrique. Elle redéfinit également la méthode rouler pour vérifier que la distance demandée ne dépasse pas l’autonomie du vélo électrique.
Nous avons ensuite créé un objet mon_velo à partir de la sous-classe VeloElectrique et avons appelé la méthode rouler sur cet objet. Comme on peut le voir, la méthode rouler redéfinie dans la sous-classe VeloElectrique a été appelée et a vérifié que la distance demandée ne dépassait pas l’autonomie du vélo électrique.