7.2 Rappel de l'héritage

Cliquez içi pour plus de vidéos disponibles sur notre chaine youtube !

Avant d'aborder la composition, cette leçon fait un rappel sur l'héritage, l'un des piliers de la programmation orientée objet en Java.

Le principe de l'héritage

L'héritage permet à une classe (la sous-classe ou classe enfant) de réutiliser les attributs et les méthodes d'une autre classe (la super-classe ou classe parente). On exprime cette relation avec le mot-clé extends. L'héritage modélise une relation « est un » : une voiture est un véhicule.

public class Vehicule {
    private String marque;

    public String getMarque() {
        return marque;
    }
}

public class Voiture extends Vehicule {
    private int nombrePortes;
    // Voiture herite de getMarque() et du champ marque
}

Ce que la sous-classe récupère

  • Elle hérite des champs et méthodes non privés de la classe parente.
  • Elle peut ajouter ses propres champs et méthodes.
  • Elle peut redéfinir une méthode héritée grâce à @Override.
  • Son constructeur appelle celui du parent via super(...).

En Java, une classe ne peut hériter que d'une seule classe parente : c'est l'héritage simple. L'avantage principal est la réutilisation du code et l'organisation logique des classes selon une hiérarchie.

Vers la composition

L'héritage n'est cependant pas toujours la bonne solution. Lorsque la relation entre deux classes est plutôt une relation « a un » (une voiture a un moteur), la composition est mieux adaptée : la classe contient une instance d'une autre classe comme attribut. C'est précisément le sujet de la leçon suivante.