Pierre-Yves Varoux
Tue, 03 Dec 2002 09:32:29 -0800
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