// Die Antwort ist 2 nicht sicher warum. Ruft es die Objekt-/Klasseninstanz // method nicht auf, wenn die Methode überschrieben wird. Warum ruft compareTo in der Person-Klasse anstelle von SoccerPlayer auf, warum lautet die Antwort 2 ???? Vielen Dank im VorausVerwirrt von der compareTo Antwort
public class Person implements Comparable {
private String name;
public Person(String name) { this.name = name; }
public String getName() { return name; }
public boolean equals(Object other) {
return other != null && name.equals(((Person) other).name);
}
public int compareTo(Object other) {
return name.compareTo((Person other).name);
}
public int hashCode() { return name.hashCode(); }
}
public class SoccerPlayer extends Person {
private int numGoals;
public SoccerPlayer(String name, int n) {
super(name);
numGoals = n;
}
public int getNumGoals() { return numGoals; }
public void score() [ numGoals++; }
public int compareTo(SoccerPlayer other) {
return getNumGoals() - other.getNumGoals();
}
public String toString() {
return getName() + "/" + getNumGoals();
}
}
Was ist das Ergebnis des folgenden Codes? // warum 2 ??? ein
Person players[] = { new SoccerPlayer("Mia Hamm", 7), new SoccerPlayer("Kristine Lilly", 6) };
System.out.println(players[0].compareTo((SoccerPlayer) players[1])); // Line ***
. Syntaxfehler in der Klasse Person: other.name ist nicht zugänglich
b. Syntaxfehler in der Klasse SoccerPlayer: compareTo wird neu definiert
c. ClassCaseException on Line ***
d. Kompiliert ohne Fehler, Anzeigen 1
e. Kompiliert ohne Fehler, Anzeigen 2
Beide Antworten sind falsch, da sie rohe Typen verwenden. –