Dans une classe Java, une méthode peut être définie comme étant final
, pour marquer que cette méthode ne peut pas être remplacée:
public class Thingy {
public Thingy() { ... }
public int operationA() {...}
/** this method does @return That and is final. */
public final int getThat() { ...}
}
C'est clair, et cela peut être d'une certaine utilité pour se protéger contre un dépassement accidentel, ou peut-être des performances - mais ce n'est pas ma question.
Ma question est la suivante: d'un point de vue POO, j'ai compris qu'en définissant une méthode, final
le concepteur de classe promet que cette méthode fonctionnera toujours comme décrit ou sous-entendu. Mais souvent, cela peut être hors de l'influence de l'auteur de la classe, si ce que fait la méthode est plus compliqué, alors il suffit de fournir une propriété .
La contrainte syntaxique est claire pour moi, mais quelle est l'implication au sens de la POO? Est-il final
utilisé correctement dans ce sens par la plupart des auteurs de classe?
Quel genre de «contrat» une final
méthode promet-elle?