Professional Documents
Culture Documents
HéritageJava
Page 1
Héritage et classe dérivée
n Dès lors qu'une caractéristique (attribut ou méthode) est définie à un niveau elle
reste valable pour tous les sous-niveaux affiliés.
n Ce mécanisme est appelé l'héritage. En java, si une classe D hérite d'une classe
B, la classe D est appelée classe dérivée et B classe de base.
n Une personne a une méthode anniversaire() qui lui permet de changer d’age et
une méthode afficher () qui affiche l’ensemble de ses attributs :
n Un Stagiaire est donc une personne qui suit un cours. Un Stagiaire hérite donc
de la classe Personne :
class Personne
{ private String nom;
private String prenom;
private int age;
public Personne ()
{ nom ="" ; prenom = "" ; age = 0 ; }
public Stagiaire()
{ cours= "" ; }
public Stagiaire( String _nom , String _prenom , int _age ,String _cours )
{ super ( _nom , _prenom , _age ); // appel du constructeur de la classe de ba
cours = _cours;
}
n L ’appel d’un constructeur s’effectue avec le mot clé « super » en fournissant les
arguments nécessaire :
n L’appel peut être implicite, dans ce cas c’est le constructeur par défaut de la
classe de base qui est appelé :
public Stagiaire()
{
// super () ; est effectué de façon implicite.
cours= "" ;
}
class Demo
{
public static void main (String args [ ])
{
Personne pers1;
Stagiaire stag1;
pers1 = new Personne ("Bond" , "james" , 7 );
stag1 = new Stagiaire ( "Jones" , "Indiana" , 31 , "java" );
pers1.afficher();
stag1.afficher();
pers1.anniversaire();
stag1.anniversaire();
}
}
n Les caractéristiques héritées sont tributaires des attributs d'accès des membres
de la classe de base.
n Les membres publics de la classe "Personne" sont bien-sûr accessibles pour les
méthodes de la classe "Stagiaire" :
class Personne
{
protected String nom;
}
class Demo
{
public static void main (String args [ ])
{
Personne pers1;
pers1 = new Personne ("Bond" , "james" , 7 );
pers1.nom = "Jones" ; // erreur nom est inaccessible
pers1.afficher();
}
}
u appliqué aux attributs, il indique que le contenu ne doit pas évoluer (définition de
constantes).
u appliqué aux méthodes, il spécifie que la méthode ne pourra pas être redéfinie dans
la classe dérivée.