所以我会为你省去巨大的代码块,直奔主题。我有两个类:一个是基础“AbstractNode”类,另一个是“TokenRingNode”类。AbstractNode 的签名是这样的:
public abstract class AbstractNode <E extends NetworkEvent>
然后是 TokenRingNode 的签名:
public class TokenRingNode extends AbstractNode<TokenRingEvent>
我在 AbstractNode 中有一个方法是:
public abstract void createEvent(AbstractNode<E> destinationNode);
我也试过:
public abstract <N extends AbstractNode<E>> createEvent (N destinationNode)
然后在 TokenRingNode 中,我重写了这个抽象方法:
public void createEvent(TokenRingNode destinationNode) { ... }
问题是,编译器不相信这是一个有效的覆盖,我不确定为什么。TokenRingNode 扩展了 Abstract,所以有人可以向我说明为什么这个方法不是有效的覆盖吗?