私は次のメソッドを持つインターフェース(と呼ばれる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);
}
引数はオーバーライドされるメソッドの引数と同じではないため、これは機能しません。
では、ポリモーフィックな引数でメソッドをオーバーライドする方法はありますか?