Un exemple utilisant "super"                        

Un exemple utilisant "super"

           

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.affiche() : on invoque ici la méthode affiche définie dans la super-classe et non celle définie dans la classe courante.

super.i : il s'agit ici de la variable i de la super-classse.