Utiliser la surcharge                        

Utiliser la surcharge

           

On illustre ici ce qu'on appelle la surcharge des méthodes.

La classe Surcharge possède deux constructeurs de même nom mais avec un jeu d'arguments différents : on utilise en cela la surcharge.

La classe Surcharge possède trois méthodes portant le nom operation mais avec un jeu d'arguments différents, globalement ou par leur ordre : on utilise en cela la surcharge.

Si plusieurs méthodes possèdent le même nom mais diffèrent par l'ensemble des types de ses paramètres, ou par l'ordre des types de ses paramètres, on dit qu'il y a surcharge. Á l'exécution, il n'y a pas d'ambiguïté : lorsqu'un constructeur de la classe Surcharge ou lorsque la méthode operation est invoquée, la bonne méthode est choisie pour qu'il y ait correspondance entre les paramètres de l'appel et les arguments de la méthode.

Deux méthodes d'une même classe ne peuvent pas différer uniquement par le type de de la valeur de retour.

Peu importe ce que font la classe Surcharge et les différentes méthodes de celle-ci. Seule la forme nous intéresse ici.

public class Surcharge {
  private int n;
  private double x;

  public Surcharge() {
      n = 1;
      x = 3.5;
    }

  public Surcharge(int n, double x) {
      this.n = n;
      this.x = x;
    }
  
  public int operation(int p) {
      return 10 * p + n;
    }

  public double operation(double y, int p) {
      return x * p + y;
    }

  public double operation(int p, double y) {
      return (double) n / p + y;
    }
}

class EssaiSurcharge {
  public static void main(String[] argv) {
      Surcharge surcharge;

      surcharge = new Surcharge();
      System.out.println(surcharge.operation(2));
      System.out.println(surcharge.operation(1.5, 4));
      System.out.println(surcharge.operation(4, 1.5));
      surcharge = new Surcharge(7, 2.0);
      System.out.println(surcharge.operation(2));
    }
}
On obtient à l'exécution :
21
15.5
1.75
27
Pour accéder à ces classes

© Charon Irène Télécom ParisTech 2010