heritage
Définition
• Héritage : mécanisme permettant le partage et la réutilisation de propriétés entre les objets.
• La relation d’héritage est une relation de généralisation/ spécialisation.
• La classe parente est la superclasse, la classe qui hérite est la sous-classe.
POO-JAVA
1
L’héritage : représentation graphique
Superclasse
Lien d’héritage
Sous-classe
Représentation avec UML d’un héritage (simple)
POO-JAVA
2
L’héritage avec Java
• Java implémente le mécanisme d'héritage simple qui permet de "factoriser" de l'information dans le cas où deux classes sont reliées par une relation de généralisation / spécialisation.
• L'héritage multiple n'existe pas en Java.
– L’implémentation d’interface permet de compenser cette limitation • Pour le programmeur, il s'agit d'indiquer, dans la sousclasse, le nom de la superclasse dont elle hérite.
• Par défaut toutes classes Java hérite de la classe Object
• Mot réservé : extends
POO-JAVA
3
POO-JAVA
4
L’héritage avec Java class Personne
{
private String nom; private Date date_naissance;
// ...
}
class Employe extends Personne
{
private float salaire;
// ...
}
class Etudiant extends Personne
{
private int numero_carte_etudiant;
// ...
}
POO-JAVA
5
L’héritage en Java
• Constructeurs et héritage
– par défaut le constructeur d’une sous-classe appelle le constructeur "par défaut" (celui qui ne reçoit pas de paramètres) de la superclasse. Attention donc dans ce cas que le constructeur sans paramètre existe toujours dans la superclasse...
– Pour forcer l'appel d'un constructeur précis, on utilisera le mot réservé super. Cet appel devra être la première instruction du constructeur.
POO-JAVA
6
L’héritage en Java public class Employe extends Personne
{
public Employe () { } public Employe (String nom, String prenom, int anNaissance)
{
super(nom, prenom, anNaissance);
}
}
Pour forcer l'appel d'un constructeur précis, on