Ich habe eine Klasse Vertex<T>
, die IVertex<T>
implementiert, die Comparable
implementiert. Jedes Mal, wenn ich meinen Code kompilieren, erhalte ich die Fehlermeldung:Nicht abstrakte Klasse kann die abstrakte Methode compareTo in Comparable nicht überschreiben?
Vertex is not abstract and does not override abstract method compareTo(IVertex) in Comparable
Das Problem dabei ist, dass kann ich nicht IVertex
innerhalb der Schnittstelle eine der Code ändern, wie das ist, was mein Lehrer angewiesen hat. Wie kann ich dieses Problem lösen?
Vertex: Ich habe meinen Code unten enthalten
package student_solution;
import graph_entities.*;
import java.util.*;
public class Vertex<T> implements IVertex<T>{
// Add an edge to this vertex.
public void addEdge(IEdge<T> edge){
}
// We get all the edges emanating from this vertex:
public Collection< IEdge<T> > getSuccessors(){
}
// See class Label for an an explanation:
public Label<T> getLabel(){
}
public void setLabel(Label<T> label){
}
}
IVertex:
package graph_entities;
import java.util.Collection;
public interface IVertex<T> extends Comparable<IVertex<T>>
{
// Add an edge to this vertex.
public void addEdge(IEdge<T> edge);
// We get all the edges emanating from this vertex:
public Collection< IEdge<T> > getSuccessors();
// See class Label for an an explanation:
public Label<T> getLabel();
public void setLabel(Label<T> label);
}
Vielen Dank im Voraus!
Nun, implementieren Sie die Methode, die Sie vergessen zu implementieren (dh 'public int compareTo (IVertex v)'. –
Der Compiler sagt Ihnen, dass Ihre Klasse die compareTo-Methode implementieren muss - das ist alles. – duffymo
Lesen Sie die Fehlermeldung mehr Es heißt "Vertex", nicht "IVertex". – EJP