Salut Je suis tombé sur ce problème ce matin (je l'ai déjà trouvé un travail autour) mais je suis curieux de savoir pourquoi mon code ne fonctionne pas comme je voulaisJava boucle infinie/appels
public class classA
//(1)
public void function(GL10 gl){
function(gl,useGLUtilsBool, useMipMapBool);
}
//(2)
public void function(GL10 gl,boolean useGLUtils, boolean
useMipMap){
generateTexture(gl, useGLUtils, useMipMap);
}
}
@Override
public class classB extends
classA{
//(3)
public void function(GL10 gl, boolean useGLUtils, boolean
useMipMap) {
function(gl);
}
//(4)
@Override
public void function(GL10 gl) {
super.function(gl);
}
Normalement il devrait faire (3) -> (4) -> (1) -> (2) mais à la place je reçois (3) -> (4) -> (1) -> (3) -> (4) - > (1) ...
ce que je ne comprends pas pourquoi la fonction CLASSA (...) (1) appellerait (3) et non (2)
Bienvenue dans le polymorphisme. –
Oui j'ai joué avec le polymorphisme, je ne m'attendais pas à ça ^^ (je sais que nous n'attendons jamais de bugs, ils s'invitent) –
Note: si la fonction() était statique, elle se comporterait comme vous décrire parce que vous n'obtenez pas de polymorphisme avec des méthodes statiques. –