• Matéria: Informática
  • Autor: croddrigues
  • Perguntado 6 anos atrás

Analise o código abaixo. public class SuperClasse { public void metodo1() { System.out.println("Ola Mundo!"); } } public abstract class SubClasse extends SuperClasse { public void metodo1(int x) { System.out.println("Ola Mundo! " + x); } } public class SubSubClasse extends SubClasse { public void metodo1(String s) { System.out.println("Ola Mundo! " + s); } } public class SubSubClasse extends SubClasse { public void metodo1(String s) { System.out.println("Ola Mundo! " + s); } } Considerando o texto acima, avalie as afirmações abaixo. I – Considerando a herança, a classe SubSubClasse é uma classe abstrata. II – A classe SubClasse pode ser transformada em interface, apenas trocando "abstract class" por "interface". III – Um objeto da classe SubSubClasse tem acesso a 3 métodos diferentes, chamados "metodo1" . IV – Um objeto da classe SuperClasse tem acesso a apenas 1 método.


rofbasso: A 2 está errada pessoal, as certas são III e IV alternativa 3. Na pagina 41 do livro:
"Ao contrário de interfaces, classes abstratas podem conter campos
(atributos) que não são static e final, e elas podem conter métodos não abstratos implementados."

Ou seja apenas trocando "abstract class" por "interface" irá gerar um erro porque o método da classe não é abstrato e está com implementação.

Respostas

respondido por: andrealvesdeoliveira
5

Resposta:

Alternativa 5:  II, III e IV, apenas.

Explicação:


luanaaninha: mas pq a 1 ta errada?
dsccabral: Olá! Tbm marquei esta alternativa. Acho q a alternativa I está incorreta porque apesar de sabermos que o termo "extends" se refere a uma "extensão" (ou herança, no caso), ao meu ver, deveria ter sido classificada como "abstract" tbm, estando aí o erro. Porém, posso estar errado!
rofbasso: A 2 está errada pessoal, as certas são III e IV alternativa 3. Na pagina 41 do livro:
"Ao contrário de interfaces, classes abstratas podem conter campos
(atributos) que não são static e final, e elas podem conter métodos não abstratos implementados."

Ou seja apenas trocando "abstract class" por "interface" irá gerar um erro porque o método da classe não é abstrato e está com implementação.
adelsonburger: ta errada mesmo a 2.. só certas 3 e 4
cgvhorn: III e IV apenas. Alternativa 3.
Perguntas similares