Galera, me deparei com essa questão…
Given classes defined in two different files:
package packageA;
public class Message {
String getText() { return ?text?; }
}
and:
package packageB;
public class XMLMessage extends packageA.Message {
String getText() { return ?<msg>text</msg>?; }
public static void main(String[] args) {
System.out.println(new XMLMessage().getText());
}
}
What is the result of executing XMLMessage.main?
A. text
B. text
C. An exception is thrown at runtime.
D. Compilation fails because of an error in line 2 of XMLMessage.
E. Compilation fails because of an error in line 3 of XMLMessage.
Eu marquei que era a letra B, pois XMLMessage herda a classe Message de packageA (Classe Messagem é public). E a classe XMLMessage cria um método novo String getText() que retorna text (método getText() de Message é default então, XMLMessage não tem acesso a ele)
Porém, o killerTest diz que a resposta é E, erro na linha 3 de XMLMessage!?
Será que to errado? Alguem poderia me explicar essa questão?
Obrigado.
