heritage

Pages: 5 (1082 mots) Publié le: 2 décembre 2014
L’héritage
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-classeRepré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 leprogrammeur, 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;
// ...
}

classEtudiant 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, onutilise le mot réservé super.
Cet appel doit alors être la première
instruction du constructeur.

POO-JAVA

7

L’héritage en Java
public class Employe extends Personne
{
public Employe () {}
public Employe (String nom,
String prenom,
int anNaissance)
{
super(nom, prenom, anNaissance);
}
}

Appel explicite à ce constructeur
avec le mot clé super

public class Personne
{public String nom, prenom;
public int anNaissance;
public Personne()
{
nom=""; prenom="";
}
public Personne(String nom,
String prenom,
int anNaissance)
{
this.nom=nom;
this.prenom=prenom;
this.anNaissance=anNaissance;
}
}

POO-JAVA

8

L’héritage en Java
public class Personne
{
public String nom, prenom;
public int anNaissance;
public Personne()
{
nom=""; prenom="";
}public Personne(String nom,
String prenom,
int anNaissance)
{
this.nom=nom;
this.prenom=prenom;
this.anNaissance=anNaissance;
}
}

public class Object
{
public Object()
{
… / ...
}
}

Appel par défaut dans le constructeur
de Personne au constructeur
par défaut de la superclasse de
Personne, qui est Object

POO-JAVA

9

Redéfinition de méthodes
• Une sous-classe peutredéfinir des méthodes
existant dans une de ses superclasses (directe
ou indirectes), à des fins de spécialisation.
– Le terme anglophone est "overriding". On parle
aussi de masquage.
– La méthode redéfinie doit avoir la même signature.
class Employe extends Personne
class Cadre extends Employe
{
{
redéfinition
private float salaire;
public calculePrime()
public calculePrime( )
{
{
//...
// ...
}
}
// ...
}
}
POO-JAVA

10

Recherche dynamique des méthodes
• Le polymorphisme
– Capacité pour une entité de prendre plusieurs formes.
– En Java, toute variable désignant un objet est
potentiellement polymorphe, à cause de l'héritage.
– Polymorphisme dit « d’héritage »

• le mécanisme de "lookup" dynamique :
– déclenchement de la méthode la plus spécifique d’un...
Lire le document complet

Veuillez vous inscrire pour avoir accès au document.

Vous pouvez également trouver ces documents utiles

  • Heritage
  • Heritage
  • Heritage
  • héritages
  • Heritage
  • Héritage africain
  • Héritage hippie
  • Héritage romain

Devenez membre d'Etudier

Inscrivez-vous
c'est gratuit !