Héritage multiple Python

L’héritage multiple est un concept de la programmation orientée objet qui permet à une classe de dériver de plusieurs classes en même temps. Cela signifie qu’une classe peut hériter des propriétés et méthodes de plusieurs classes parentes et les utiliser dans sa propre définition.

Voici un exemple simple d’héritage multiple en Python:

 

class Animal:
  def __init__(self, name, species):
    self.name = name
    self.species = species

  def make_sound(self):
    print("Some generic animal sound")

class Swimming:
  def __init__(self, swim_speed):
    self.swim_speed = swim_speed

  def swim(self):
    print(f"Swimming at speed {self.swim_speed}")

class Fish(Animal, Swimming):
  def __init__(self, name, swim_speed):
    super().__init__(name, species="Fish")
    Swimming.__init__(self, swim_speed)

# Créer un objet de la classe Fish
fish1 = Fish("Nemo", "fast")

# Accéder aux propriétés de l'objet
print(fish1.name)  # Output: "Nemo"
print(fish1.species) # Output: "Fish"
print(fish1.swim_speed)  # Output: "fast"

# Appeler les méthodes de l'objet
fish1.make_sound()  # Output: "Some generic animal sound"
fish1.swim()  # Output: "Swimming at speed fast"

Dans cet exemple, la classe

Fish

hérite de la classe

Animal

et de la classe

Swimming

. Elle utilise le mot-clé

class

suivi du nom de la classe et des parenthèses pour déclarer la classe

Fish

. Dans les parenthèses, nous spécifions le nom des classes parentes, qui sont

Animal

et

Swimming

. La classe

Fish

hérite automatiquement toutes les propriétés et méthodes de la classe

Animal

et de la classe

Swimming

.

La classe

Fish

définit également sa propre méthode

__init__

, qui appelle les méthodes

__init__

de la classe

Animal

et de la classe

Swimming

en utilisant la fonction

super()

et en appelant la méthode directement. Cela permet de définir la propriété

species

de l’objet comme étant “Fish” et la propriété

swim_speed

en fonction de l’argument passé au constructeur.

Lorsque nous créons un objet de la classe

Fish

avec

fish1 = Fish("Nemo", "fast")

, nous pouvons accéder aux propriétés

name

,

species

et

swim_speed

de l’objet3.

Please follow and like us:
Pin Share