Aller au contenu principal
Publié le

L'héritage en Java

Partager :

Introduction

L'héritage est l'un des quatre piliers de la programmation orientée objet (OOP), aux côtés de l'encapsulation, du polymorphisme et de l'abstraction. Grâce à l'héritage, il est possible de créer une nouvelle classe basée sur une classe existante, permettant la réutilisation du code et la construction de relations hiérarchiques.

Fondamentaux de l'Héritage

Avantages de l'Héritage

  1. Réutilisation du Code: Il n'est pas nécessaire de réécrire le même code à plusieurs reprises. La sous-classe hérite de tous les membres de la superclasse.
  2. Extensibilité: Il est possible d'étendre la superclasse existante pour y incorporer de nouveaux attributs et comportements.
  3. Hiérarchie de Classes: Établit une relation hiérarchique entre la superclasse et la sous-classe.

Restrictions de l'Héritage en Java

En Java, l'héritage est implémenté à l'aide du mot-clé extends. Cependant, il existe quelques restrictions :

  1. Héritage Simple: Java ne supporte pas l'héritage multiple via les classes. Une classe ne peut hériter que d'une seule classe.
  2. Constructeurs et Initialiseurs Statiques: Ceux-ci ne sont pas hérités par les sous-classes.
  3. Relation d'Association: Si une classe hérite d'une autre, il s'agit d'une relation "est un" (is-a). Par exemple, si Enfant est une extension de Parent, alors Enfant est un Parent.

Le mot-clé protected

Le mot-clé protected en Java permet à un membre de la classe d'être accédé directement par toute classe au sein du même package ou par des sous-classes. C'est un moyen de fournir plus d'accès que private, tout en restreignant l'accès généralisé comme le fait public.

package com.caffeinealgorithm.programaremjava;

public class Heritage {
  public void Run() {
    var personne = new Enfant();
    personne.information();
    personne.platPrefere();

    /*
      Nom: Nelson Silva
      Âge: 28
      Mon plat préféré est le risotto aux fruits de mer.
    */
  }
}

class Parent {
  protected String nomDeFamille = "Silva";

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

class Enfant extends Parent {
  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);
  }
}

Conclusion

L'héritage est un outil puissant en Java qui permet aux programmeurs d'écrire du code plus modulaire et réutilisable. En comprenant les fondamentaux et les nuances de l'héritage, vous serez mieux préparé à relever les défis complexes de la programmation orientée objet en Java.

Happy coding!