Résumé du chapitre

13.6 Résumé du chapitre

Les points saillants de ce chapitre sont les suivants :

  • L'héritage décrit une relation « est un » entre les classes. Une classe, la sous-classe, hérite d'une autre classe, la superclasse.
  • Les sous-classes peuvent accéder directement aux attributs et aux méthodes hérités.
  • Les sous-classes peuvent redéfinir les méthodes de la superclasse pour modifier ou ajouter des fonctionnalités.
  • super() permet à une sous-classe d'accéder aux méthodes de la superclasse.
  • Le polymorphisme décrit une représentation unique pour de multiples formes et s'applique en Python pour définir plusieurs méthodes portant le même nom et permettre à une même méthode d'accepter différents arguments.
  • L'héritage hiérarchique est un type d'héritage dans lequel plusieurs classes héritent d'une seule superclasse.
  • L'héritage multiple est un type d'héritage dans lequel une classe hérite de plusieurs classes.
  • Les classes mixin sont utilisées dans l'héritage multiple pour ajouter des fonctionnalités à une sous-classe sans introduire les contraintes liées à l'héritage.

À ce stade, vous devriez être en mesure d'écrire des sous-classes qui héritent d'attributs et de méthodes d'instance, ainsi que des sous-classes possédant des attributs propres et des méthodes redéfinies. Vous devriez également être capable d'établir des relations d'héritage hiérarchique et d'héritage multiple entre les classes.

Tâche Exemple
Définir une sous-classe
class SuperClass:
  pass

class SubClass(SuperClass):
  pass

Définir le __init__() d'une sous-classe à l'aide de super()

class SubClass(SuperClass):
  def __init__(self):
    super().__init__() # Calls superclass __init__()
    # Initialize subclass instance attributes
Redéfinir une méthode de superclasse
class SuperClass:
  def display(self):
    print('Superclass method')

class SubClass(SuperClass):
  def display(self): # Same name as superclass method
    print('Subclass method')
Implémenter l'héritage hiérarchique
class SuperClass:
  def display(self):
    print('Superclass method')

class SubClass1(SuperClass):
  def display(self):
    print('Subclass 1 method ')
class SubClass2(SuperClass):
  def display(self):
  print('Subclass 2 method')

class SubClass3(SuperClass):
  def display(self):
    print('Subclass 3 method')
Implémenter l'héritage multiple
class SuperClass1:
    pass

class SuperClass2:
    pass

class SubClass(SuperClass1, SuperClass2):
    pass
Tableau 13.2 Référence du chapitre 13.