Estou com dificuldade para entender o resultado da saída do seguinte código abaixo
import java.io.*;
class Alpha{
void x(double i){
System.out.println("Entrei Alpha ");
if(i < 0){
System.out.println("Sim");
return;
}
this.x(-1);
System.out.println("---------");
System.out.println("af + " + i);
}
}
class B extends Alpha {
void x(double i){
System.out.println("Entrei em b ");
System.out.println("a " + i);
System.out.println("----------");
super.x(i);
System.out.println("c + " + i);
System.out.println("----------");
}
}
class A {
public static void main(String[] args){
new B().x(32);
}
}
Essa é a saída do meu código
Entrei em b
a 32.0
----------
Entrei Alpha
Entrei em b
a -1.0
----------
Entrei Alpha
Sim
c + -1.0
----------
---------
af + 32.0
c + 32.0
----------
Eu não entendi porque ele executou o System assim no final
af + 32.0
c + 32.0
o valor de i estava em -1 e pelo fluxo do console e também já tinha imprimido o valor c com -1.
Alguém sabe me dizer porque o comportamento do código ficou dessa forma?