я следующую иерархию в Java:Override в унаследованной интерфейс с подтипом с дженериков
interface ObserverA {}
interface A {
void method1();
addObserver(Observer o);
}
И я хочу выразить это так:
interface ObserverB extends ObserverA{}
interface B extends A {
void method2();
addObserver(ObserverB o);
}
таким образом, что addObserver()
метод B
переопределяет тот же метод в A
. Как бы то ни было, реализации B
потребуется реализовать обе версии addObserver()
, у меня не будет только одного.
Может ли это быть сделано умным способом, который не подразумевает наличия спараметрировать A
как:
interface A<O extends Observer> {
addObserver(O o);
}
хак решение приветствуется!
Общий тип всегда является лучшим способом для выполнения такой задачи, когда вы не знаете тип – Biswajit