我有一个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);
}
这不起作用,因为参数与被覆盖的方法的参数不同。
那么有没有办法用多态的参数覆盖一个方法呢?