だから私はあなたにコードの巨大なブロックを惜しまないで、追いかけます。2つのクラスがあります。1つは基本の「AbstractNode」クラスで、もう1つは「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を拡張しているので、このメソッドが有効なオーバーライドではない理由を誰かが説明できますか?