我是从网上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;
答案 0 :(得分:6)
应该是。这是一个错字。粘贴它的代码无法编译。
答案 1 :(得分:3)
你是对的。这是一个错字,应该是return name
。
请通知讲师或班级联系人,以便他们更新pdf。
答案 2 :(得分:2)
除非三点区域包含类似
的内容private String String = "Alice";
但是,不,我猜这是一个错字; - )