私は次のメソッドを持つインターフェース(と呼ばれるSubject)を持っています:
public void addObserver(Observer o);
Subject次に、と呼ばれる拡張する別のインターフェイスがありますTimerSubject。このインターフェイスは、のより具体的なバージョンでありSubject、タイミングに使用されます。他にもいくつかの方法があります。
対応する2つのインターフェイス、、、もありObserverますTimerObserver。TimerObserver拡張しObserverます。
クラスがを実装するとき、インターフェースからメソッドTimerSubjectをオーバーライドする必要があります。これは次のようになります。addObserver()Subject
@Override
public void addObserver(**Observer e**) {
observers.add(e);
}
TimerObserver問題は、の代わりに受け入れるメソッドが必要Observerなことです。これは次のようになります。
@Override
public void addObserver(**TimerObserver e**) {
observers.add(e);
}
引数はオーバーライドされるメソッドの引数と同じではないため、これは機能しません。
では、ポリモーフィックな引数でメソッドをオーバーライドする方法はありますか?