Aller au contenu principal
Publié le

En savoir plus sur l'Héritage en Java

Partager :

Introduction

Si la première introduction à l'héritage en Java nous aide à comprendre ses concepts fondamentaux, dans cet article nous allons approfondir des sujets plus avancés tels que la substitution de méthodes et l'abstraction.

Substitution de Méthodes

Lorsqu'une sous-classe hérite d'une superclasse, elle hérite également de ses méthodes. Cependant, dans de nombreux cas, nous voulons que la sous-classe dispose d'une implémentation différente pour une ou plusieurs de ces méthodes. Cela s'obtient grâce à la substitution de méthodes, en utilisant l'annotation @Override.

Avantages de la Substitution de Méthodes :

  1. Flexibilité : Permet à la sous-classe de fournir une implémentation spécifique d'une méthode déjà fournie par sa superclasse.
  2. Réutilisation du Code : Même en héritant d'une méthode d'une superclasse, nous pouvons l'adapter aux besoins spécifiques de la sous-classe.
  3. Meilleure Lisibilité : En utilisant l'annotation @Override, nous signalons clairement que la méthode est substituée, rendant le code plus compréhensible.
package com.caffeinealgorithm.programaremjava;

public class EnSavoirPlusSurHeritage {
  public void Run() {
    var personne = new Fils();
    personne.information();
    personne.platPrefere();

    /*
      Nom : Nelson Silva
      Âge : 28
      Mon plat préféré est les lasagnes.
    */
  }
}

class Pere {
  protected String nomDeFamille = "Silva";

  public void platPrefere() {
    System.out.println("Mon plat préféré est le riz aux fruits de mer.");
  }
}

class Fils extends Pere {
  private String prenom = "Nelson";
  private int age = 28;

  public void information() {
    System.out.printf("Nom : %s %s\n", prenom, nomDeFamille);
    System.out.printf("Âge : %d\n", age);
  }

  @Override
  public void platPrefere() {
    System.out.println("Mon plat préféré est les lasagnes.");
  }
}

Abstraction et Méthodes Abstraites

Le terme "abstract" a été brièvement mentionné précédemment. Il s'agit d'un concept important en Java, permettant de créer des classes et des méthodes qui ne peuvent pas être instanciées. Ce sont, en substance, des modèles que d'autres classes doivent suivre.

  1. Classes Abstraites : Ne peuvent pas être instanciées directement. Elles servent de base à d'autres classes.
  2. Méthodes Abstraites : Sont déclarées dans la classe abstract mais n'ont pas de corps. Les sous-classes doivent fournir l'implémentation de ces méthodes.

Nous explorerons ce sujet en détail dans un prochain article, garantissant une compréhension complète de l'abstraction et de la façon dont elle s'intègre à l'héritage.

Conclusion

L'héritage, combiné à des concepts tels que la substitution de méthodes et l'abstraction, fait de la programmation orientée objet un outil puissant pour créer des logiciels modulaires et réutilisables. Ce ne sont là que quelques-uns des concepts avancés en Java, et continuer à les explorer approfondira encore davantage vos connaissances.

Happy coding!