日期:2014-05-20  浏览次数:20692 次

有道模拟题,我感觉答案错了。
题目如下



Question 193
Given classes defined in two different files:
1. package packageA;
2. public class Message {
3. String getText() { return “text”; }
4. }
and:
1. package packageB;
2. public class XMLMessage extends packageA.Message {
3. String getText() { return “<msg>text</msg>”; }
4. public static void main(String[] args) {
5. System.out.println(new XMLMessage().getText());
6. }
7. }
What is the result of executing XMLMessage.main?
A. text
B. <msg>text</msg>
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.


答案:E 


可是我怎么看答案都是B阿?line 3哪里错了?

------解决方案--------------------
</msg>


I guess...
------解决方案--------------------
有同感,一般这样的题都是考子类重写的方法的范围必须大于等于父类,可这个也符合呀
------解决方案--------------------
方法不是public的,不在一个包里的子类不能覆盖。
------解决方案--------------------
是不是重写方法时,方法的访问限制符的问题,必须比父类的范围大
------解决方案--------------------
这道题并没有错误,考察的是方法的重写(覆盖)问题,运行程序后,控制台输出"<msg>text</msg>"。