我有一個看起來像這樣既有狗和貓類:覆蓋自定義Java類中的compareTo()方法?
public class Dog implements Speakable
{
private String name;
public Dog(String name)
{
this.name = name;
}
public void speak()
{
System.out.println("Woof! Woof!");
}
public String toString()
{
return "Dog: " + name;
}
}
這些類都實現我創建了一個叫做口述的接口看起來像這樣:
public interface Speakable
{
public void speak();
}
這口述存在界面因爲我需要一個引用變量,它允許我將Dogs和Cats添加到同一個ArrayList中,並且仍然對它們調用speak()方法。
我還需要重寫Comparable接口的compareTo()方法,以便比較狗的名稱。當調用這個方法時,我認爲我的代碼如下所示:a.compareTo(b)。如果a大於b,我希望這個新方法返回-1,如果a小於b,則返回1,如果相等,則返回0。
我想我需要的狗類具體實現除口述可比,所以我寫的可比界面是這樣的:
public interface Comparable<Dog>
{
public int compareTo(Object obj);
}
如何覆蓋的compareTo()方法,以滿足需要我以上所列?我知道我需要幾個if語句,但是我不能想到在不調用新的compareTo()方法中的compareTo()方法的情況下編寫此語句的方法。這是合法的嗎?比較接口的compareTo()方法不應該包含這些決定嗎?
「我怎麼覆蓋的compareTo()方法,以滿足我上面列出的需要」 - 什麼是您的需求。我可以看到,你只想比較名字 – Rehman
你是什麼意思由'a大於b,a小於b'?你如何比較'狗'? – TDG
您正在嘗試分類清單?或者列表? –