Redéfinition et super()
Redéfinition de méthode (Overriding)
Si une classe enfant définit une méthode qui a exactement le même nom et la même signature qu'une méthode de sa classe parente, c'est la méthode de l'enfant qui sera exécutée. C'est ce qu'on appelle la redéfinition de méthode.
Dans l'exemple précédent, Dog et Cat redéfinissent la méthode générique Animal.speak().
La fonction super()
Souvent, une sous-classe doit exécuter la version de la classe parente d'une méthode (particulièrement __init__) avant ou après l'ajout de son propre code spécialisé. super() vous donne accès aux méthodes de la classe parente.
python class Person: def init(self, name, age): self.name = name self.age = age print("Personne initialisée.")
class Employee(Person): def init(self, name, age, employee_id):
# 1. Appeler le constructeur du parent via super()
# Cela gère l'initialisation de 'name' et 'age'
super().__init__(name, age)
# 2. Ajouter des attributs spécifiques pour la sous-classe
self.employee_id = employee_id
print("Employé initialisé.")
def get_info(self):
return f"{self.name} ({self.age}), ID : {self.employee_id}"
manager = Employee('Alice', 45, 'E450') print(manager.get_info())