Zastąp metodę w dziedziczonym interfejsie z podtypem z rodzajami
Mam następującą hierarchię w java:
interface ObserverA {}
interface A {
void method1();
addObserver(Observer o);
}
I chcę to rozszerzyć w następujący sposób:
interface ObserverB extends ObserverA{}
interface B extends A {
void method2();
addObserver(ObserverB o);
}
w taki sposób, żeaddObserver()
metodaB
zastąpiłoby tę samą metodę wA
. Jak to nie działa, implementacjeB
musiałby zaimplementować obie wersjeaddObserver()
, Nie chcę mieć tylko jednego.
Czy można to zrobić w sprytny sposób, który nie wymaga parametryzacjiA
lubić:
interface A<O extends Observer> {
addObserver(O o);
}
Hackowskie rozwiązania są mile widziane!