Questão nº 50

Questão de Tecnologia da Informação · CEBRASPE TCE MS 2025 SERVIDOR (nº 50)

CEBRASPE2025Auditor de Controle Externo - Área: Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Bver comentário ↓

```java
interface Pagavel {
double calcularPagamento();
}

class Freelancer implements Pagavel {
double horasTrabalhadas;
double valorHora;

Freelancer(double horas, double valor) {
this.horasTrabalhadas = horas;
this.valorHora = valor;
}

public double calcularPagamento() {
return horasTrabalhadas * valorHora;
}
}

class Consultor extends Freelancer {
double bonus;

Consultor(double horas, double valor, double bonus) {
super(horas, valor);
this.bonus = bonus;
}

@Override
public double calcularPagamento() {
return super.calcularPagamento() + bonus;
}
}

public class TestePagamento {
public static void main(String[] args) {
Pagavel f = new Freelancer(40, 50);
Pagavel c = new Consultor(30, 80, 500);

System.out.println(f.calcularPagamento());
System.out.println(c.calcularPagamento());
System.out.println(f instanceof Consultor);
}
}
```

Considere o código Java 17 acima. Assinale a opção que corresponde ao resultado da execução do código em apreço no console.

Resposta comentada

Gabarito Alternativa B

Conceito-chave: Uma variável do tipo Pagavel só "enxerga" os métodos da interface, mas o método chamado é o da classe real do objeto (polimorfismo). O operador instanceof verifica se o objeto é daquela classe ou de uma subclasse dela.

  • (A) Incorreta: A ordem está invertida: o Freelancer (40 × 50 = 2000.0) é impresso antes do Consultor (30 × 80 + 500 = 2900.0), e f é Freelancer, não Consultor, então false.
  • (B) Correta: f.calcularPagamento() executa o método de Freelancer → 40 × 50 = 2000.0. c.calcularPagamento() executa o método sobrescrito de Consultor → 30 × 80 + 500 = 2900.0. f instanceof Consultor é false, pois f aponta para um objeto Freelancer, que não é subclasse de Consultor (a herança é o contrário: Consultor estende Freelancer).
  • (C) Incorreta: Os valores impressos são os pagamentos (produtos e soma), não os atributos isolados valorHora (50 e 80). A saída correta é numérica com ponto decimal (2000.0 e 2900.0).
  • (D) Incorreta: O resultado dos pagamentos está certo, mas f instanceof Consultor é false — a pegadinha aqui é pensar que f poderia ser Consultor, mas o objeto criado foi new Freelancer(...), e instanceof verifica o objeto real, não o tipo da variável.
  • (E) Incorreta: Repete o erro da (C) e da (D): imprime valores errados (50 e 80) e ainda afirma true para um instanceof que é falso.

Fonte: CEBRASPE TCE MS 2025 SERVIDOR Auditor de Controle Externo - Área: Tecnologia da Informação. Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho