Logo Passei Direto
Buscar
Considere a execução dos códigos Java abaixo. S1.java abstract class S1 { protected int x; protected int y; public void mostra(){ System.out.print("Prova"); } } S2.java public class S2 extends S1{ int y; public void mostra(){ super.y=10; System.out.println("x=" +(++x)+" e "+(y+x)); } public static void main(String args[]){ S2 s; s=new S2(); s.x=10; s.y=6; s.mostra(); } } A saída correta é

(A) Prova.
(B) Prova x=12 e y=18.
(C) x= 12 e y= 18.
(D) x= 11 e y= 17.
(E) x= 10 e y= 17.
User badge image
Desafios Para o Conhecimento

há 11 meses

Respostas

User badge image

Ed Verified user icon

há 11 meses

Vamos analisar o código Java apresentado passo a passo. 1. Classe S1: É uma classe abstrata com dois atributos protegidos `x` e `y`, e um método `mostra()` que imprime "Prova". 2. Classe S2: Esta classe estende S1 e tem um atributo `y` (que é diferente do `y` da classe S1). O método `mostra()` da classe S2 faz o seguinte: - Atribui 10 ao `y` da classe S1 (`super.y = 10`). - Incrementa `x` em 1 (`++x`), que inicialmente é 10 (definido no `main`). - Imprime `x` e a soma de `y` (que é 6, definido no `main`) e `x`. 3. Execução no método main: - Um objeto `s` da classe S2 é criado. - `s.x` é definido como 10. - `s.y` é definido como 6. - O método `mostra()` é chamado. Agora, vamos calcular a saída: - `++x` incrementa `x` de 10 para 11. - `super.y` é definido como 10, mas `y` da classe S2 permanece 6. - A soma `y + x` será `6 + 11 = 17`. Portanto, a saída do método `mostra()` será: ``` x=11 e 17 ``` Assim, a alternativa correta é: (D) x= 11 e y= 17.

Essa resposta te ajudou?

0
Dislike0
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar essa resposta. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais perguntas desse material

Mais conteúdos dessa disciplina