Cours S7 Python

L'Héritage

Nous avons vu les objets et les classes précédement. Dans ce cours, vous allez apprendre ce que c’est qu’ un héritage et comment le programmer !

I. Introduction

 L’Héritage, c’est quoi ? L’héritage c’est tout simplement les caractéristiques communes à différents objets. Par exemple, si vous désirez coder un batiments, vous pouvez remarquer que vous devez définir dans n’importe lequel des batiments, son nombre d’étage, sa localisation ou adresse, son nom. C’est ca l’héritage. Pour le retenir, je peux vous donner cette phrase: “Tous vos objets hérite de certaines caractérisques communes.”

 

II. Créer des classes pour les joueurs

 Admettons que vous êtes dans un jeux vidéo, (je prend souvent l’exemple des jeux vidéo parce que ils sont à la fois visuels et poussez technologiquement parlant), vous pouvez choisir différentes classe. Par exemple, Guerrier, Mage, Elfe et Troll. Chacune des ses classes a des spécifités bien particulière. Mais chacun a aussi des points communs comme par exemple des points de vie ou même de l’attaque. Nous allons donc coder tous cela:

Vous allez donc copier coller votre classe Character(). Puis vous changerez le nom de Character en Mage(). Et entre les paranthèses, vous allez écrire:

class Mage(Character):

Cela indique à votre programme que Mage hérite de toutes les variables de Character(), soit health, name, attack … Vous pouvez donc supprmier ses valeurs de la classe Mage() puisque elles y sont déjà dans Character().

III. Super()

Mais si vous supprimer simplement ses variables, vous verrez un message d’erreur. En effet, il faut utiliser la fonction super(). Vous allez donc en-dessous de init:

super().__init__(name, health, attack)

Ici, vous intégrer donc ces variable dans votre classe mage. Vous devez aussi supprimer les “Getter” qui se trouve dans la classe Mage. En effet, si vous avez 2 fois les mêmes “Getter”, vous allez voir apparaitre une erreur. Votre classe Mage devrait donc ressembler à cela —-> (voir l’image à droite).

IV. Rajouter des spécifités

Comme vous l’avez remarquer, si nous avons créé une nouvelle classe Mage c’est pour lui attribuer des spécifités. On va donc par exemple lui rajouter 5 points de protection:

self.armor = 5

Ensuite, on va devoir définir que les points d’armure se prennent des domages avant les points de vie:

def damage(self, damage):

                 if self.armor > 0:

                     self.armor -= 1

                    damage = 0

Ensuite, nous allons appeler la super classe damage avec la fonction super():

super().damage(damage)

 

 

V. Super !!!

 Vous avez maintenant pris connaissance de ce que c’est qu’un objet et un héritage. N’hésitez pas à vous entrainer par exemple sur des classes de batiment ou de personnage etc… Dans le prochain cours, nous allons apprendre à utiliser l’interface graphique !!