Logo Passei Direto
Buscar
Analise o código Java mostrado a seguir sem o trecho central, que foi substituído pela linha tracejada.
```
abstract class Exemplar {
public abstract void exemplarMetodo1();
public void escreve() {
System.out.println("Mensagem 2");
}
}
class Main {
public static void main(String[] args) {
Exemplar2 exemplo = new Exemplar2();
exemplo.exemplarMetodo1();
exemplo.escreve();
}
}
```
Na sua forma completa o programa acima provoca a exibição do resultado que segue.
Mensagem 1
Mensagem 2
Assinale a opção que apresenta o código que completa perfeitamente o trecho omitido, de modo que o resultado da execução seja o mesmo citado acima.
(A) class Exemplar2 inherits Exemplar { public void exemplarMetodo1() { System.out.println("Mensagem 1"); }
}
(B) public class Exemplar2 extends Exemplar { public Exemplar2 exemplarMetodo1() { System.out.println("Mensagem 1"); }
}
(C) class Exemplar extends Exemplar2 { public void exemplarMetodo1() { System.out.println("Mensagem 1"); }
}
(D) class Exemplar2 extends Exemplar { public void exemplarMetodo1() { System.out.println("Mensagem 1"); }
}
(E) class Exemplar2 extends Exemplar { private void exemplarMetodo1() { System.out.println("Mensagem 1"); }
A
B
C
D
E
User badge image

Enviado por Douglas Rolim ontem

Respostas

User badge image

Ed Inteligência Artificial do Passei Direto Verified user icon

ontem

Vamos analisar as opções para encontrar a que completa corretamente o trecho omitido e produz o resultado desejado: O código apresentado tem uma classe abstrata `Exemplar` que possui um método abstrato `exemplarMetodo1()` e um método concreto `escreve()`. O método `exemplarMetodo1()` deve ser implementado na classe `Exemplar2`, que estende `Exemplar`. O resultado esperado da execução é: ``` Mensagem 1 Mensagem 2 ``` Agora, vamos analisar as alternativas: (A) `class Exemplar2 inherits Exemplar { public void exemplarMetodo1() { System.out.println("Mensagem 1"); } }` - A palavra-chave correta em Java é `extends`, não `inherits`. Portanto, essa opção está incorreta. (B) `public class Exemplar2 extends Exemplar { public Exemplar2 exemplarMetodo1() { System.out.println("Mensagem 1"); } }` - Aqui, o método `exemplarMetodo1()` está retornando um objeto do tipo `Exemplar2`, o que é incorreto, pois deveria ser `void`. Portanto, essa opção está incorreta. (C) `class Exemplar extends Exemplar2 { public void exemplarMetodo1() { System.out.println("Mensagem 1"); } }` - Essa opção inverte a hierarquia, o que não faz sentido, pois `Exemplar` é a classe abstrata. Portanto, essa opção está incorreta. (D) `class Exemplar2 extends Exemplar { public void exemplarMetodo1() { System.out.println("Mensagem 1"); } }` - Esta opção está correta. `Exemplar2` estende `Exemplar` e implementa o método `exemplarMetodo1()` corretamente, produzindo a saída esperada. (E) `class Exemplar2 extends Exemplar { private void exemplarMetodo1() { System.out.println("Mensagem 1"); } }` - O método `exemplarMetodo1()` é declarado como `private`, o que significa que não pode ser acessado fora da classe `Exemplar2`, o que não é permitido, pois é um método abstrato na classe pai. Portanto, essa opção está incorreta. A única opção que completa corretamente o trecho omitido e produz a saída desejada é a alternativa (D).

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

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

Essa pergunta também está no material:

Mais perguntas desse material

Mais conteúdos dessa disciplina