tôi đã hệ thống phân cấp sau đây trong java:Override trong giao diện kế thừa với kiểu phụ với Generics
interface ObserverA {}
interface A {
void method1();
addObserver(Observer o);
}
Và tôi muốn mở rộng nó như thế này:
interface ObserverB extends ObserverA{}
interface B extends A {
void method2();
addObserver(ObserverB o);
}
theo một cách như vậy mà addObserver()
phương pháp B
sẽ ghi đè phương thức tương tự trong A
. Vì nó không hoạt động, việc triển khai B
sẽ cần phải triển khai cả hai phiên bản addObserver()
, tôi không chỉ có một phiên bản.
này có thể được thực hiện trong một cách khéo léo mà không liên quan đến việc phải parameterize A
như:
interface A<O extends Observer> {
addObserver(O o);
}
giải pháp hackish được hoan nghênh nhất!
Kiểu chung luôn là cách tốt hơn để thực hiện những điều như vậy mà bạn không biết loại – Biswajit