मैं अपने उप-वर्ग के अनुसार विधि को अलग करने के लिए वस्तुओं को प्रेषित करने की कोशिश कर रहा हूं।सबक्लास प्रकार के आधार पर जावा विधि कैसे शुरू करें?
उदाहरण के लिए,, उन 2 वस्तुओं
class A extends I {}
class B extends I {}
और विधि
void dispatch(I i) {}
dispatch()
में
पर विचार मैं i
के प्रकार के अनुसार एक विधि आह्वान करने के लिए करना चाहते हैं। इसलिए यदि i
वास्तव में टाइप ए का है, handlerA(A a)
विधि कहा जाएगा। यदि यह प्रकार बी, handlerB(B b)
कहलाता है, और इसी तरह ... मैंने विधि अधिभार के साथ प्रयास किया लेकिन मुझे लगता है कि यह इस तरह से काम नहीं करता है
इसे प्राप्त करने का सबसे अच्छा तरीका क्या है? मैं अगर/बाकी कथन का उपयोग से बचना चाहते हैं ...
अग्रिम धन्यवाद,
संपादित करें: मैं उन वर्गों के किसी भी संशोधित नहीं कर सकते।
मतलब यह है कि 'हैंडलर()' समझ में आता है 'A' और' b' पर लिख सकते हैं। यदि ऐसा है, तो आपका जवाब 100% सही है। –
केविन: आप सही हैं, यह करता है। लेकिन केवल एक तरह का। मुझे अभी भी लगता ओपी बहुरूपता के बुनियादी विचार की याद आ रही है, और यहां तक कि अगर मेरे सटीक सुझाव उपयुक्त नहीं है, मुझे लगता है कि में एक समारोह/संपत्ति में से कुछ योजना 'मैं' घ जाने का रास्ता है। –
अगर हैंडलर() मैं में है, और दोनों ए और बी मैं लागू है, लेकिन यह मतलब नहीं है हैंडलर के लिए() दोनों पर, मुझे लगता है कि ** शायद ** अन्य समस्याएं हैं। – Carl