Pourquoi l’heritage#
L’héritage permet de créer une classe à partir d’une autre pour réutiliser son code.
On part d’une classe générale, puis on crée des versions plus spécialisées.
Exemple : une Personne#
class Personne {
public:
std::string nom;
int age;
void sePresenter() {
std::cout << "Je m'appelle " << nom << std::endl;
}
};voici le diagramme
classDiagram
class Personne{
+String nom
+sePresenter()
}Cette classe décrit une personne en général.
Création d’une classe qui hérite#
Imaginons un étudiant.
Un étudiant est une personne, mais avec des infos en plus.
class Etudiant : public Personne {
public:
int numeroEtudiant;
};public Personne signifie que Etudiant hérite de Personne.
classDiagram
Etudiant<|--Personne
class Etudiant{
+int idEtudiant
+voirNotes()
}
class Personne{
+String nom
+sePresenter()
}l’heritage se note de cette maniere dans les diagrammes
Utilisation#
Etudiant e;
e.nom = "Alice"; // vient de Personne
e.age = 20; // vient de Personne
e.numeroEtudiant = 1234; // propre à Etudiant
e.sePresenter(); // méthode héritée
La classe Etudiant possède :
- ses propres données
- tout ce qui existe déjà dans
Personne
Ajouter un comportement spécifique#
class Professeur : public Personne {
public:
std::string matiere;
void enseigner() {
std::cout << "J'enseigne " << matiere << std::endl;
}
};Résumé#
L’héritage permet de :
- réutiliser du code existant
- créer des relations “est-un” (
Etudiantest unePersonne) - organiser les classes de manière logique
Une classe enfant récupère les attributs et méthodes de la classe parent.