public class Message
{
String getText(){ return “text”; }
}
[/code]
[code]package packageB;
public class XMLMessage extends packageA.Message
{
String getText(){ return “text”; }
public static void main(String...$){
System.out.println(new XMLMessage().getText() );
}
}[/code]
What is the result of executing XMLMessage.main ?
A) text
B) Compilation fails.
C) text
D) An exception is thrown at runtime
Pergunta 1: o método “getText()” não está sendo sobreescrito, correto? Pergunta 2: No gabarito, está constando a alternativa B. Porém, eu compilei aqui, separando as duas classes certinho e funcionou normalmente, ou seja, imprimiu text
Será que o gabarito está errado mesmo ou em que fiz algo errado?
[quote=evertonsilvagomesjava]Neste exemplo esta tendo sobreescriçao sim pq nao?
usa pra vc ver Message obj = new XMLMessage();[/quote]
Vc quer dizer fazer algo assim?
[code] packageA.Message m = new XMLMessage();
System.out.println( m.getText() );[/code]
Aqui não compilou… Eu acho que não é sobreescrita mesmo pois o modificador de acesso do método getText() da classe Message é o default, o que significa que somente as classes do mesmo pacote terão acesso à ele. A classe XMLMessage nem enxerga ele.