嗨我編程合理新,我有比較方法的困難,我有幾個類,我的最初問題是與我的父類。重寫抽象方法比較()
我得到這個錯誤:
人不是抽象的,不重寫方法比較比較(java.lang.Object中,java.lang.Object中)
public class Person implements Comparator
{
//some methods
public int compare(Person p1, Person p2)
{
// if last names are the same compare first names
if(p1.getLastName().equals(p2.getLastName()))
{
return p1.getFirstName().compareTo(p2.getFirstName());
}
return p1.getLastName().compareTo(p2.getLastName());
}
我的孩子類看起來有些像這樣的事情:
public class Player extends Person implements Comparator
{
//some methods
public int compare(Player p1, Player p2)
{
if(p1.getGamesPlayed()<p2.getGamesPlayed())
{
return -1;
}else if (p1.getGamesPlayed()==p2.getGamesPlayed())
{
return 0;
}else
{
return 1;
}
}
我也有一個俱樂部類存儲在一個ArrayList <Player>
團隊的所有信息。
我的界面:
public interface Comparator<T>
{
int compare(T o1, T o2);
}
,我也有這個類
public class ComparePlayers implements Comparator<Player>
{
public int compare(Player p1, Player p2)
{
if(p1.getGamesPlayed()< p2.getGamesPlayed())
{
return -1;
}else if(p1.getGamesPlayed()== p2.getGamesPlayed())
{
return p1.getLastName().compareTo(p2.getLastName());
}else
{
return 1;
}
}
這個規範是:
當一個新的球員簽約,她/他應插入按照姓氏的字母順序排入俱樂部類(如果姓氏相同,則輸入姓氏)。爲此,您的Person和Player類將實現適當的Comparable接口。
編寫一個實現比較器<Player>
接口的類ComparePlayers。它應該通過玩遊戲的次數比較玩家(如果玩的遊戲數量相同,則按姓氏的字母順序)。爲Club類使用Comparator <Player>
參數實現一個新的構造函數。因此,編寫一個主要程序,通過降低玩遊戲的順序,打印關於列出玩家的俱樂部中每個玩家的信息。這應該允許命令由主程序決定,而不用修改任何其他類中的代碼。
對不起,如果這是很長的囉嗦,但我很努力地看到什麼是錯的,我已經嘗試了幾個變化,它只是不會工作。這是因爲在週五,只是在正確的方向推動將非常感激。
而不是寫自己比較接口,使用一個在java.util包中。 – karakuricoder 2011-04-30 12:22:34