我有一个Subject
具有以下方法的接口(称为):
public void addObserver(Observer o);
然后我有另一个扩展Subject
名为TimerSubject
. 这个接口是一个更具体的版本Subject
,用于计时。它还有一些其他的杂项方法。
还有两个对应的接口Observer
, 和TimerObserver
。TimerObserver
延伸Observer
。
当一个类实现TimerSubject
时,它必须重写接口中的addObserver()
方法Subject
。看起来像这样:
@Override
public void addObserver(**Observer e**) {
observers.add(e);
}
问题是,我需要接受 aTimerObserver
而不是 的方法Observer
,它看起来像这样:
@Override
public void addObserver(**TimerObserver e**) {
observers.add(e);
}
这不起作用,因为参数与被覆盖的方法的参数不同。
那么有没有办法用多态的参数覆盖一个方法呢?