3) La covariance du type de retour (Java 5.0) :
La version 5.0 de Java apporte une nouvelle possibilité : on peut
désormais modifier le type de retour de la méthode. Toutefois, il faut
que le nouveau type hérite du type de retour d'origine afin de ne pas
rompre le contrat. Ainsi, notre méthode pourrait retourner un
Long (puisque Long hérite de Number) :
Changement du type de retour :
protected Long getValue(int value) throws IOException;
Au final, on peut obtenir des méthodes très différentes alors qu'elles
redéfinnissent bien la même méthode :
Quelques exemples :
public Double getValue(int value);
protected Long getValue(int value) throws FileNotFoundException, ZipException;
etc...
Attention, les changements de signature affecteront bien sûr les classes
filles...
De plus, il peut devenir difficile de voir qu'une méthode en redéfini
une autre avec tant de modifications. Dans ce cas il est fortement conseillé
d'utiliser l'annotation @Override de Java 5.0 (si possible)...
Partager