[JAVA] Surcharge et redéfinition

Fermé
moi.néo Messages postés 1132 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 9 juin 2011 - 19 févr. 2010 à 07:52
moi.néo Messages postés 1132 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 9 juin 2011 - 20 févr. 2010 à 07:54
Salut.

J'ai un petit souci de compréhension avec la surcharge et la redéfinition en Java, avec les types réels et déclarés.

Soit le code suivant:

C c = new C() ;
A a = c;
B b = c;
Z z = new Z();
X x = z;
Y y = z;


Pourquoi les appels suivants provoquent l'affichage de "B::Y" ? :
b.f(z);
b.f(y);
a.f(z);
a.f(y);


class X{} ;
class Y extends X {...} ;
class Z extends Y{....}


public class A {
public void f(Y y) {System.out.println(“ A::Y”);}
}

public class B extends A {
public void f(Y y) {System.out.println(“ B::Y”);}
}

public class C extends B {
public void f(X x) {System.out.println(“ C::X”);}
public void f(Z z) {System.out.println(“ C::Z”);}
}


Merci d'avance.
A voir également:

5 réponses

garion28 Messages postés 1543 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 3 avril 2011 404
19 févr. 2010 à 08:37
désolé j'ai pensé que tu demandai des réponses pour un dm
1
garion28 Messages postés 1543 Date d'inscription mardi 16 juin 2009 Statut Membre Dernière intervention 3 avril 2011 404
19 févr. 2010 à 08:01
ccm ne fait pas les devoirs des autres
0
moi.néo Messages postés 1132 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 9 juin 2011 86
19 févr. 2010 à 08:30
Avant de dire n'importe quoi, tu devrais prendre le temps de lire ma question -_-"
0
moi.néo Messages postés 1132 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 9 juin 2011 86
19 févr. 2010 à 17:35
Bon voilà comment j'aurais interprété b.f(z) :
Je pars du type réel de b (qui est C) et je cherche un service qui a comme signature "f(Z)". Il y en a un donc l'affichage serait "C::Z".
Mais quand je l'exécute, ça m'affiche "B::Y" !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
moi.néo Messages postés 1132 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 9 juin 2011 86
20 févr. 2010 à 07:54
up :(
0