【发布时间】:2010-01-15 17:21:35
【问题描述】:
我从在线MIT courseware discussion(pdf 警告)中获取此信息:
public class Human {
private String name;
...
public Human(String name) {
this.name = name;
}
public String getName() {
return String;
}
}
public class Student extends Human {
private String username;
public Student(String name, String username) {
super(name);
this.username = username;
}
public String getName() {
return username;
}
public String getRealName() {
return super.getName();
}
}
...
public class World {
...
void someMethod() {
Student alice = new Student("Alice", "abc");
System.out.println(alice.getRealName()); // what gets printed?
为什么 getRealName 会返回任何内容。我知道它返回 Alice 因为构造函数是由 super(name) 调用的,但我的问题是:
return String;
为什么 Human 类中的 getName 不必是
return name;
【问题讨论】:
-
我为什么要关闭?只是好奇。
-
我讨厌在没有 cmets 的情况下关闭——但我猜这是因为它是一个非常直接的错误,甚至不会编译——它更像是一个校对问题而不是编程问题。