Java - Les fondamentaux : cours et exercices.

Héritage.

  • C'est l'un des fondements de la programmation orientée objet !

  • Ll'héritage permet à des objets de fonctionner de la même façon que d'autres.

    --

Imaginons que, dans le programme réalisé précédemment, nous voulions créer un autre type d'objet : des objets Capitale.

Ceux-ci ne seront rien d'autre que des objets Ville avec un paramètre en plus... disons un monument.

Vous n'allez tout de même pas recoder tout le contenu de la classe Ville dans la nouvelle classe !

Déjà, ce serait vraiment contraignant, mais en plus, si vous aviez à modifier le fonctionnement de la catégorisation de nos objets Ville, vous auriez aussi à effectuer la modification dans la nouvelle classe...

Ce n'est pas terrible.

Principe.

Nous allons créer une nouvelle classe, nommée Capitale, héritée de Ville.

Vous vous rendrez vite compte que les objets Capitale auront tous les attributs et toutes les méthodes associés aux objets Ville !

class Capitale extends Ville {

  // ...

}

Capitale cap = new Capitale();

System.out.println(cap.decrisToi());

On teste ...

C'est bien la preuve que notre objet Capitale possède les propriétés de notre objet Ville.

Essayez ceci :

public class Capitale extends Ville{

  public Capitale(){

    this.nomVille = "toto";

  }

}

On obtient une erreur.

Les variables qui ne sont pas "public" ne peuvent être atteinte.

Pour remédier à cela et ne pas les passer "public", il faut les déclarer "protected".

On passe donc toutes les variables "private" en "protected".

Nous pouvons faire appel aux variables de la classe mère dans nos constructeurs grâce au mot clé super.

Cela aura pour effet de récupérer les éléments de l'objet de base, et de les envoyer à notre objet hérité.

Comme ceci :

class Capitale extends Ville {

  private String monument;

  //Constructeur par défaut

  public Capitale(){

    //Ce mot clé appelle le constructeur de la classe mère

    super();

    monument = "aucun";

  }

}

Grâce à la commande "super" on va pouvoir récupérer les méthodes.

Ainsi on peut les surcharger :

Et maintenant on fait propre :

Remarque

Les commentaires que vous pouvez voir sont ce que l'on appelle des commentaires JavaDoc.

Ils permettent de créer une documentation pour votre code.

Vous pouvez faire le test avec Eclipse en allant dans le menu Project/Generate JavaDoc.

Essayez cela :

Capitale cap = new Capitale("Paris", 654987, "France", "la tour Eiffel");

System.out.println("\n"+cap.decrisToi());

Résultat :

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimerRéalisé avec Scenari (nouvelle fenêtre)