2013-09-24 63 views
0

我想弄清楚爲什麼我不斷收到我的AM類不重寫抽象方法的錯誤。在我的老師的UML圖中,它只顯示我需要我的父類廣播類中的equals(Object o)方法。我也沒有在抽象類中聲明它是抽象的。在java中抽象類錯誤

public abstract class Radio implements Comparable 
{ 
double currentStation; 

RadioSelectionBar radioSelectionBar; 
public Radio() 
{ 
    this.currentStation = getMin_Station(); 
} 
public abstract double getMax_Station(); 
public abstract double getMin_Station(); 
public abstract double getIncrement(); 
public void up() 
{ 

} 
public void down() 
{ 

} 
public double getCurrentStaion() 
{ 
    return this.currentStation; 
} 
public void setCurrentStation(double freq) 
{ 
    this.currentStation = freq; 
} 
public void setStation(int buttonNumber, double station) 
{ 
} 
public double getStation(int buttonNumber) 
{ 
    return 0.0; 
} 
public String toString() 
{ 
    String message = ("" + currentStation); 
    return message; 
} 

public boolean equals (Object o)  
{   
    if (o == null)   
    return false;   
    if (! (o instanceof Radio))   
    return false;  
    Radio other = (Radio) o;  
    return this.currentStation == other.currentStation;  
} 

public static void main(String[] args) 
{ 
    Radio amRadio = new AMRadio(); 

    System.out.println(amRadio); 

    Radio fmRadio = new FMRadio(); 

    System.out.println(fmRadio); 

    Radio xmRadio = new XMRadio(); 

    System.out.println(xmRadio); 

} 
} 


public class AMRadio extends Radio 
{ 
    private static final double Max_Station = 1605; 
    private static final double Min_Station = 535; 
    private static final double Increment = 10; 
    public AMRadio() 
    { 
    currentStation = Min_Station; 
    } 
    public double getMax_Station() 
    { 
    return this.Max_Station; 
    } 
    public double getMin_Station() 
    { 
    return this.Min_Station; 
    } 
    public double getIncrement() 
    { 
    return this.Increment; 
    } 
    public String toString() 
    { 
    String message = ("AM " + this.currentStation); 
    return message; 
    } 
} 

回答

2

您必須實現compareTo()方法,因爲Radio實現Comparable接口和這種方法沒有在Radio類中提供的具體實現,所以你有兩個選擇:

  1. 在所有Radio的子類中實施compareTo()
  2. 或實施compareTo()Radio

這樣的事情,在AMRadio

public int compareTo(AMRadio o) { 
    // return the appropriate value, read the linked documentation 
} 

或者這樣,在Radio

public int compareTo(Radio o) { 
    // return the appropriate value, read the linked documentation 
}