Это я или есть опечатка в этой записи курса? - PullRequest
1 голос
/ 15 января 2010

Я взял это из онлайн-обсуждения MIT (предупреждение в формате 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 возвращает что-либо. Я знаю, что это возвращает Алису, потому что конструктор вызывается super (name), но мой вопрос о:

return String;

Почему getName в классе Human не должно быть

return name;

Ответы [ 3 ]

6 голосов
/ 15 января 2010

Так и должно быть. Это опечатка. Этот код, который вы вставили, не будет компилироваться.

3 голосов
/ 15 января 2010

Вы правы. Это опечатка и должна быть return name.

Пожалуйста, сообщите инструктору или контактному лицу для класса, чтобы они могли обновить PDF.

2 голосов
/ 15 января 2010

, если область с тремя точками не содержит что-то вроде

private String String = "Alice";

но, нет, думаю, это опечатка; -)

...