我的类KTree
正在扩展抽象类GraphClass
,但GraphClass
中定义的方法之一不能被重写。方法不会从抽象超类重写
public abstract class GraphClass<V extends VertexInterface<?> ,E extends EdgeInterFace <V,?>> implements UndirectedGraph<V,E>{
//other methods
@Override
public boolean addEdge(E e, V v, V v1) {
return false;
}
//more methods
}
原始方法addEdge(E e, V v, V v1)
是在KTree
类addEdge(E e, V v, V v1)
接口UndirectedGraph<V,E>
public class KTree<V extends VertexInterface<?> ,E extends EdgeInterFace <V,?>> extends GraphClass {
//other methods
@Override
public boolean addEdge(E e, V v, V v1) {
if(!this.Nodes.contains(v) || !this.Nodes.contains(v1) || this.Edges.containsValue(e)){
return false;
}
v.setDegree(v.getDegree()+1);
v1.setDegree(v1.getDegree()+1);
this.Edges.put(e.getHashCode(),e);
return true;
}
//more methods
}
定义引发错误
'addEdge(E,V,V)' 在 'KTree' 与 'addEdge(E,V,V)' 中 'GraphClass' 冲突;这两种方法具有相同的擦除,但既没有覆盖 的其他
在KTree
的@override引发错误
覆盖方法不自其超
我明白为什么他们有相同类型的擦除,但我认为如果我添加@override它将默认为所有KTree
实例的该版本的方法。我想要做的只是重写GraphClass
中的方法,但不知道为什么它不能识别@override。这是否与覆盖已覆盖接口方法的方法有关?