मैं है जावा में निम्न पदानुक्रम:अवहेलना विधि
interface ObserverB extends ObserverA{}
interface B extends A {
void method2();
addObserver(ObserverB o);
}
इस तरह से कि addObserver()
में:
interface ObserverA {}
interface A {
void method1();
addObserver(Observer o);
}
और मैं इसे इस तरह का विस्तार करना चाहते B
की विधि A
में उसी विधि को ओवरराइड कर देगी। चूंकि यह काम नहीं करता है, B
के कार्यान्वयन को addObserver()
के दोनों संस्करणों को लागू करने की आवश्यकता होगी, मेरे पास केवल एक नहीं होना चाहिए।
यह एक चतुर तरीके से किया जा सकता है कि parameterize करने के लिए A
की तरह होने को शामिल नहीं करता:
interface A<O extends Observer> {
addObserver(O o);
}
hackish समाधान बहुत स्वागत है!
जेनेरिक प्रकार हमेशा ऐसी चीज करने के लिए एक बेहतर तरीका है जहां आप – Biswajit