Héritage de base
Fait partie de la section Object Oriented Programming du Journey Python de Coddy — leçon 17 sur 64.
L'héritage permet à une classe d'hériter des attributs et des méthodes d'une autre classe, créant ainsi une relation parent-enfant.
Voici un exemple d'une classe parente :
class Animal:
def __init__(self, name):
self.name = name
def info(self):
print(f"I am {self.name}, an animal")Créez une classe enfant qui hérite du parent :
class Dog(Animal):
pass # Hérite de tout de la classe AnimalLa syntaxe class Dog(Animal): signifie que Dog hérite de Animal. Placez le nom de la classe parente entre parenthèses.
Créez des objets à partir des deux classes :
generic_animal = Animal("Creature")
buddy = Dog("Buddy")Utilisez les méthodes héritées :
generic_animal.info()
buddy.info()Sortie :
I am Creature, an animal
I am Buddy, an animalMême si Dog ne définit pas __init__ ou info, il les obtient automatiquement de Animal.
Vous pouvez ajouter de nouvelles méthodes à la classe enfant :
class Dog(Animal):
def bark(self):
print(f"{self.name} says Woof!")
buddy = Dog("Buddy")
buddy.info() # Méthode héritée
buddy.bark() # Nouvelle méthodeSortie :
I am Buddy, an animal
Buddy says Woof!Point clé : Les classes enfants héritent de tous les attributs et méthodes de leur classe parente. Utilisez la syntaxe class Child(Parent): pour créer un héritage. Cela vous aide à réutiliser le code et à créer des hiérarchies de classes logiques.
Défi
Moyenvehicle.py: Contient la classe parenteVehiclecar.py: Contient la classeCarqui hérite deVehicledriver.py: Fichier principal pour tester votre implémentation
Chaque fichier contient des commentaires TODO détaillés pour vous guider tout au long de l'implémentation. Vous devrez :
- Compléter la classe
Vehicleavec les attributsmakeetmodel - Implémenter l'héritage de classe approprié dans la classe
Car - Configurer les instructions d'importation correctes entre les fichiers
- Créer et tester des objets dans le fichier driver
Suivez attentivement les commentaires TODO car ils fournissent des conseils étape par étape pour la solution.
Aide-mémoire
L'héritage permet à une classe d'hériter des attributs et des méthodes d'une autre classe en utilisant la syntaxe class Child(Parent): :
class Animal:
def __init__(self, name):
self.name = name
def info(self):
print(f"I am {self.name}, an animal")
class Dog(Animal):
pass # Hérite de tout ce qui provient d'AnimalLes classes enfants héritent automatiquement de toutes les méthodes et attributs du parent :
buddy = Dog("Buddy")
buddy.info() # Utilise la méthode héritée
# Output: I am Buddy, an animalAjoutez de nouvelles méthodes aux classes enfants tout en conservant les fonctionnalités héritées :
class Dog(Animal):
def bark(self):
print(f"{self.name} says Woof!")
buddy = Dog("Buddy")
buddy.info() # Méthode héritée
buddy.bark() # Nouvelle méthodeEssayez vous-même
# À FAIRE : Importer la classe Vehicle depuis vehicle.py
# À FAIRE : Importer la classe Car depuis car.py
# À FAIRE : Créer un objet Vehicle avec la marque "Toyota" et le modèle "Corolla"
vehicle = None
# À FAIRE : Créer un objet Car avec la marque "Honda" et le modèle "Civic"
car = None
# À FAIRE : Appeler la méthode display_info() sur l'objet vehicle
# Résultat attendu : "Vehicle: Toyota Corolla"
# À FAIRE : Appeler la méthode display_info() sur l'objet car
# Résultat attendu : "Vehicle: Honda Civic"
# Note : Car hérite de display_info de Vehicle sans modificationCette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Object Oriented Programming
1Les fondamentaux de la POO
Fichiers externesIntroduction à la POOClasses vs ObjetsLe paramètre selfMéthodesAttributsMéthode constructeur (__init__)Récapitulatif - Calculatrice simple4Héritage
Héritage de baseLa fonction super()Redéfinition de méthodeHéritage multipleOrdre de résolution des méthodesRécapitulatif - Hiérarchie des employés7Méthodes spéciales
Introduction aux méthodes magiquesSurcharge d'opérateursMéthodes magiques de conteneurRécapitulatif - Liste personnalisée10Patrons de conception, Partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FactoryPatron ObserverPatron Strategy2Décorateurs
Introduction aux décorateursDécorateur de propriétéDécorateur de méthode statiqueDécorateur de méthode de classe5Polymorphisme
Retour sur la redéfinition de méthodeDuck TypingClasses et méthodes abstraitesConception d'interfacesRécapitulatif - Calculateur de formes8Concepts avancés de la POO
Composition vs HéritageMixinsMéthodes statiques et de classeDécorateurs de classeGestionnaires de contexte11Patrons de conception, Partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode TemplatePatron ÉtatPatron Composite3Propriétés de classe
Variables d'instance vs variables de classeDécorateurs de propriétéAttributs privésRécapitulatif - Gestionnaire de compte bancaire