betty555
Messages postés38Date d'inscriptionmercredi 17 janvier 2007StatutMembreDernière intervention 6 juillet 2010
-
5 juin 2009 à 09:27
betty555
Messages postés38Date d'inscriptionmercredi 17 janvier 2007StatutMembreDernière intervention 6 juillet 2010
-
5 juin 2009 à 10:17
Bonjour,
J'ai une interfaceA ou j'ai déclaré une méthode M1 qui retourne une interfaceB (Implémentée par ClasseB), La méthode M1 est appelée dans une classeC. Est ce que c'est possible d'avoir le retour de la méthode M1 comme classe qui implémente l'interfaceB?
final ClasseB classB = classA.M1();
Parceque j'ai une erreur quand je mets en retour classA au lieu d'avoir interfaceB.
Puisque j'ai ClasseB qui implémente InterfaceB, et ClasseA qui implémente InterfaceA je croyais que c'etait possible...
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 5 juin 2009 à 09:42
Salut,
Je ne sais pas si j'ai bien tout compris, je m'embrouille un peu avec tes classes A, B et C, ton truc marche, mais il faut caster le type concret de retour :
public interface InterfaceA {
public InterfaceB getB();
}
public interface InterfaceB {
}
class ClasseA implements InterfaceA {
public InterfaceB getB() {
return new ClasseB();
}
}
class ClasseB implements InterfaceB {
}
ClasseA a = new ClasseA();
ClasseB b = a.getB(); // erreur de type !
InterfaceB b = a.getB(); // OK