Il est également possible de surcharger les méthodes. Une méthode est surchargée dans une classe donnée
si une autre méthode de la même classe porte le même nom. Elle doit alors nécessairement avoir une signature
différente. La signature est constituée du nom et de la liste ordonnée des types des paramètres. Le type
de retour ne fait pas partie de la signature. En revanche, il est interdit d'avoir dans la même classe,
deux méthodes qui ont la même signature et un type de retour différent.
void incrementer() {
if (etat < ((1<<n) - 1)) {
// état inférieur stricte à 2n-1
this.etat += 1;
} else {
// état égal à la valeur limite 2n-1
this.etat = 0;
}
} | void incrementer(int nombre) {
if (etat < ((1<<n) - nombre)) {
// état inférieur strict à 2n-nombre
this.etat += nombre;
} else {
// état égal à la valeur limite 2n-nombre
this.etat += (nombre - (1 << n));
}
} |
Sur cet exemple, on peut facilement appliquer la méthode de l'invariant présentée plus tôt.