Dúvida em "sobreescrita" de método

Given classes defined in two different files:

[code]package packageA;

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?

Obrigado.

tb não estou vendo erro no código…
talvez a resposta esteja errada msm…
da onde vc tirou o exercicio???..

Acho que é erro do gabarito mesmo, não vejo motivos pra não compilar, e o método não está sendo sobreescrito mesmo.

Neste exemplo esta tendo sobreescriçao sim pq nao?

usa pra vc ver Message obj = new XMLMessage();

[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.

Ah sim…nao reparei a questao do pacote, nao ta tendo sobreescrita mesmo. No teste q eu fiz ta tudo no mesmo pacote

O gabarito ta errado.

O método é default sendo assim ele só pode ser sobrescrito por classes do mesmo pacote.

Para que houve sobrescrita teria que ser public ou protected.

Sendo que o protected é parecido com o default, mas ele aceita a herança.

Abraços