Pelo que entendi a pegadinha dessa questão está no return. O mesmo faz voltar a execução do código para a chamada origem, passando por trechos não executados anteriormente. (Nesse caso imprimindo c). Por fim finalizando no método main.
Pelo que entendi a pegadinha dessa questão está no return. O mesmo faz voltar a execução do código para a chamada origem, passando por trechos não executados anteriormente. (Nesse caso imprimindo c). Por fim finalizando no método main.
Oi Manoel,
Exato. Quando a execução chega na linha
this.x(-1);
Uma nova chamada ao método x(-1) do objeto E é realizada (e o fluxo se repete, por isso imprime duas vezes B). Chegando no if(i<0) return;
voltará a execução para a primeira chamada e imprimira apenas uma vez a letra C.
Abraço!