Je crois que j'ai dis une connerie...
J'ai essyer ton code et ça marche correctement; pas besoin de redéfinir
toto()...

-----Message d'origine-----
De : Pierre-Yves Varoux [mailto:[EMAIL PROTECTED]]
Envoyé : mardi 3 décembre 2002 18:31
À : [EMAIL PROTECTED]
Objet : RE: Problème d'héritage !


Salut,

C'est normal; il faut que dans la classe B tu redéfinisse toto(){
super.toto(); }.

-----Message d'origine-----
De : Cyriaque Dupoirieux [mailto:[EMAIL PROTECTED]]
Envoyé : mardi 3 décembre 2002 18:31
À : Liste Java
Objet : Problème d'héritage !


Salut à tous.

J'ai un comportement que je m'explique mal.
Supposons que j'ai une classe A, dans laquel j'ai 2 méthodes : toto() et
tata(). Tata() est appelée par la méthode toto()
Bref :

public class A
{
public void toto()
{
   tata() ;
}
public void tata()
{
   System.out.println("Hello World A") ;
}
}

Ensuite je fais une classe B qui hérite de A. Je redéclare ici la méthode
tata()

public class B
{
public void tata()
{
   System.out.println("Hello World B") ;
}
}

Avec ce code, quand je fais B.toto(), j'ai la surprise de voir exécuter la
méthode tata() de la classe A. Est-ce un comportement objet normal ?
Il me semblait bien que dans ce cas la méthode tata() de B devrait être
appelée, mais là j'ai le comportement inverse.
Note : évidemment, le contexte de l'application est plus complexe que cela,
je n'exclue pas que le problème vienne d'ailleurs.

Merci d'avance.


--
Cyriaque Dupoirieux
PCO Technologies
Burolines - 2 ter rue Marcel Doret
31700 Blagnac
Tél : 05.34.60.44.13 - Fax : 05.34.60.44.10

Répondre à