04. Héritage.md 1.2 KB

Reste sur le même fichier 03-classes.py. Supprime les 3 dernières lignes et ajoute :

class Car(Vehicle):
    wheels=4

    def __init__(self, model, wheels=4):
      super().__init__(model)
      self.wheels = wheels

    def __str__(self):
      return self.model + ' (%d wheels, speed: %d km/h)' % (self.wheels, self.speed)

class Airplane(Vehicle):
    wings=2

    def __init__(self, model, wings=2):
      super().__init__(model)
      self.wings = wings

    def __str__(self):
      return self.model + ' (%d wings, speed: %d km/h)' % (self.wings, self.speed)

land_rover = Car('Land Rover')
land_rover.increase_spead(70)
hummer = Car('Hummer', 6)
hummer.increase_spead(110)
falcon = Airplane('Falcon 7X')
falcon.increase_spead(953)

print(land_rover)
print(hummer)
print(falcon)

Remarques :

  • Pas de mot-clé spécial comme extends pour déclarer qu'on hérite d'une classe : on met simplement le nom de la classe dont on hérite entre parenthèses, juste après le nom de la classe enfant.
  • On appelle le constructeur parent ainsi : super().__init__(arg1, arg2, ...) ou arg1, etc. sont les arguments attendus par le constructeur parent (hors self).