と同等で使用することはできません。は、次のコードを考えると、父と息子、孫の継承
public abstract class Participant {
private String fullName;
public Participant(String newFullName) {
this.fullName = new String(newFullName);
}
// some more code
}
public class Player extends Participant implements Comparable <Player> {
private int scoredGoals;
public Player(String newFullName, int scored) {
super(newFullName);
this.scoredGoals = scored;
}
public int compareTo (Player otherPlayer) {
Integer _scoredGoals = new Integer(this.scoredGoals);
return _scoredGoals.compareTo(otherPlayer.getPlayerGoals());
}
// more irrelevant code
}
public class Goalkeeper extends Player implements Comparable <Goalkeeper> {
private int missedGoals;
public Goalkeeper(String newFullName) {
super(newFullName,0);
missedGoals = 0;
}
public int compareTo (Goalkeeper otherGoalkeeper) {
Integer _missedGoals = new Integer(this.missedGoals);
return _missedGoals.compareTo(otherGoalkeeper.getMissedGoals());
}
// more code
}
問題はGoalkeeper
がcomplieないということです。
私はEclipseがスローそのコードコンパイルしよう:
The interface Comparable cannot be implemented more than once with
different arguments: Comparable<Player> and Comparable<Goalkeeper>
私はPlayer
と比較しようとしているが、Goalkeeper
で、そして彼だけではないんだが。
私は間違っていますか?
、あなたのコード例ではインデントや空白を修正することができますしてください。読むのはとても難しいです。 –
完了、申し訳ありません。今は大丈夫だと思う。 – ron
なぜ 'new String()'がコンストラクタにありますか?文字列は不変です! – fge