OUTRA — Analista de Controle Externo - Área Organizacional - Tecnologia da Informação — Engenharia de software e processos — 2012

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

  1. A)

    5;

  2. B)

    6;

  3. C)

    7;

  4. D)

    13;

  5. 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.

Questões relacionadas