Java 可比的
我有个问题。我有一个类,它扩展了另一个类并实现了Comparable。但当我试图编译我的程序时,我有一个错误:Flight不是抽象的,也不会覆盖抽象方法compareTo。无论如何,飞行代码是这样的:Java 可比的,java,comparable,compareto,Java,Comparable,Compareto,我有个问题。我有一个类,它扩展了另一个类并实现了Comparable。但当我试图编译我的程序时,我有一个错误:Flight不是抽象的,也不会覆盖抽象方法compareTo。无论如何,飞行代码是这样的: class Flight extends KeyFlight implements Comparable<Flight>{ public KeyFlight kf; public boolean departure; public void Flight(){ KeyFli
class Flight extends KeyFlight implements Comparable<Flight>{
public KeyFlight kf;
public boolean departure;
public void Flight(){
KeyFlight kf=new KeyFlight();
boolean departure=false;
}
public int compareTo(KeyFlight other){
if (kf.time==other.time){
if (kf.key<other.key){
return kf.key;
} else {
return other.key;
}
} else {
if (kf.time <other.time){
return kf.key;
} else {
return other.key;
}
}
}
}
class Flight扩展了KeyFlight工具{
公钥飞行kf;
公众假期;
公共航班(){
KeyFlight kf=新的KeyFlight();
布尔偏差=假;
}
公共内部比较(KeyFlight其他){
if(kf.time==其他时间){
如果(kf.key我认为compareTo的参数类型是错误的,那么它应该是错误的
public int compareTo(Flight other){
public void Flight(){
kf=new KeyFlight();
你应该使用
implements Comparable<KeyFlight>
否则,您将在将来获得NullPointerException。这同样适用于您的离开布尔值
另一个注意事项是,java boolean中的默认值被初始化为false,因此您不必在构造函数中明确表示。类中的compareTo
方法不是有效的重写,因为您定义了类实现Comparable
,所以为了在类中重写此方法,您需要更改其他从键飞行
到飞行
的可变类型
@Override
public int compareTo(Flight o) {
//your logic here
}
因此,在哪个类中实现Comparable确实很重要。它比较什么很重要?谢谢你,它编译成功了!是的。请看[这个](docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html),它说Comparable
,在方法摘要中说compareTo(to)
。观察它们是一样的。
@Override
public int compareTo(Flight o) {
//your logic here
}