2014-11-01 79 views
0

我在我的程序中實現compareto和clone方法時遇到了一些麻煩,在那裏我得到一個錯誤,說:「汽車不是抽象的,不重寫抽象方法compareTo(java .lang.Object)in java.lang.Comparable「。任何幫助表示讚賞:)對比和克隆方法有點麻煩

這是我到目前爲止有:

class Car implements Comparable<Car>, Cloneable 

原始類型將使用:

import java.util.*; 
public class Car implements Comparable, Cloneable 
{ 

private String model; 
private String color; 
private int year; 
private int vin_number; 
private double price; 



public Car(){} 

public Car(String model, String color, int year, int vin_number, double price) 
{ 
this.model = model; 
this.color = color; 
this.year = year; 
this.vin_number = vin_number; 
this.price = price; 
} 

public Object clone() { // shallow copy 
try 
{ 
return super.clone(); 
} 
catch (CloneNotSupportedException e) 
{ 
return null; 
} 

} 


public String getModel(){return model;} 
public String getColor(){return color;} 
public int getYear(){return year;} 
public int getVinNumber(){return vin_number;} 
public double getPrice(){return price;} 


public void setModel(String newModel){model = newModel;} 
public void setColor(String newColor){color = newColor;} 
public void setYear(int newYear){year = newYear;} 
public void setVinNumber(int newVinNumber){vin_number = newVinNumber;} 
public void setPrice(double newPrice){price = newPrice;} 

public String toString() 
{ 
return "Model: " + model + " Color: " + color + " Year: " + year + " Vin Number: " + vin_number + " Price: " + price; 
} 


public int compareTo(Car o) 
    { 

if(this.getModel().compareTo(car.getModel())) //gives 1 
return 1; 

if(car.getModel().compareTo(this.getModel())) //gives -1 
return -1; 

else 
{ 
return 0; 
} 

    } 

public static void main(String [] args) 
{ 

} 


} 

+1

如果我的回答能解決問題,*請*標記爲接受,並投上一票讓人們知道它的工作。如果你仍然有問題,評論和問題(這應該是一個學習經驗)。請不要忽視答案(我看到你沒有注意到對你之前的一個問題的回答)。歡迎來到StackOverflow,順便說一句 – 2014-11-01 03:13:22

回答

1

必須指定類型,當你實現媲美進行比較Object。您正在使用原始類型,因此現在compareTo必須聲明Object作爲參數,而不是Car

要修正這個錯誤,改變implements Comparableimplements Comparable<Car>