Enunciado
Considere o seguinte trecho de código Java abaixo. public class ClasseAB { int valor = 0; public void operacao1 (int x) { valor -= x; } public void operacao2 (int x, int y) { valor = valor + x * y; } int getvalor(){ return valor; } } public class ClasseAC extends ClasseAB { public void operacao1(int x) { valor += x; valor++; } public void operacao2(int x, int y) { try{ valor = valor == 0 ? valor += x/y : valor; } catch (Exception e) { valor++; } finally { valor++; } } } public class Main { public static void main(String[] args) { ClasseAB variavel = new ClasseAC(); variavel.operacao1(5); variavel.operacao2(3, 7); int resultado = variavel. getvalor(); } } Após ser executado o método main(), o valor da variável “resultado” é:
Alternativas
- A)
5;
- B)
6;
- C)
7;
- D)
13;
- E)
16.
Gabarito e comentário
Resposta correta: C
A referência de superclasse aponta para o objeto da subclasse, logo executa o método sobrescrito. O primeiro método leva valor a 6; o finally incrementa para 7.