On montre ici comment une classe B héritant d'une classe A peut demander d'utiliser un attribut défini dans la classe A mais masqué par un attribut de même nom dans la classe B. On voit aussi comment utiliser dans B une méthode définie dans A et redéfinie dans B. C'est le mot super qui permet ces deux opérations.
class Superieure
{
int i=1;
void affiche()
{
System.out.println("je suis en-haut");
}
}
class Inferieure extends Superieure
{
int i=2;
void affiche()
{
super.affiche();
System.out.println("je suis en-bas");
System.out.println("au-dessus, i vaut "+super.i);
System.out.println("ici, i vaut "+i);
}
}
class AvecSuper
{
public static void main(String[] arg)
{
Inferieure unInferieure = new Inferieure();
unInferieure.affiche();
}
}
On obtient à l'exécution :
je suis en-haut
je suis en-bas
au-dessus, i vaut 1
ici, i vaut 2
Pour accéder au programme.
super.i : il s'agit ici de la variable i de la super-classse.