Bonsoir
j'aimerais savoir ce qu'est la covariance en java svp ?
Merci
Version imprimable
Bonsoir
j'aimerais savoir ce qu'est la covariance en java svp ?
Merci
Salut,
La covariance permet de modifier le type de retour d'une méthode lorsqu'on la redéfinie, afin d'utiliser un type plus concret.
Plus d'info dans la FAQ : Quelles sont les règles à respecter pour redéfinir/implémenter une méthode ? (3ième partie)
a++
c'est le fait de pouvoir changer le type de retour d'une méthode dans une classe fils, en respectant toutes fois le contrat de la classe parent.
Exemple:
ce code compile et on sais que si on appelle methode sur un objet de type B, on récupèrera une valeur de type Integer, alors que si on avait gardé la signature exacte du parent, on aurait recu un Objet:Code:
1
2
3
4
5
6
7 public class A { public Object methode() { .....} } public class B extends A { public Integer methode() { ......} }
Code:
1
2
3
4
5
6 B b = new B(); Integer i = b.methode(); // mais! A a = b; i = (Integer)a.methode(); // typecasting obligatoire, car a déclare juste retourner un type Object