java - How do I call a base class's own method from another method when it's overridden? -


  सार्वजनिक वर्ग अभिभावक {निजी ऑब्जेक्ट oBase; सार्वजनिक वस्तु getObject () {// [कुछ तर्क] वापसी oBase; } सार्वजनिक स्ट्रिंग getObjectValue () {वापसी getObject ()। GetValue (); } पब्लिक क्लास बाल अभिभावक (निजी ऑब्जेक्ट o चाल्ड; सार्वजनिक ऑब्जेक्ट getObject () {रिटर्न ओबिल; } सार्वजनिक ऑब्जेक्ट getObjectValue () {getObject return ()। GetValue (); } सार्वजनिक स्ट्रिंग getParentObjectValue () {वापसी super.getObjectValue (); }}   

उपरोक्त टेम्पलेट में, मुझे यह सुनिश्चित करने के लिए एक तरीका है कि Parent.getObjectValue () में getObject () को Parent.getObject () और Child.getObject () नहीं कॉल करता है, ताकि बच्चे को ओबेस और ओ चाइल्ड को प्राप्तकर्ता मिल सके।

मैंने कोशिश की है ((माता-पिता) यह) .getObject ()। GetValue () में parent.getObjectValue (), लेकिन यह अभी भी पोलीमॉर्फ बच्चे की परिभाषा के लिए क्या विशिष्ट कॉल के लिए जावा में स्थिर बाइंडिंग को मजबूर करने का कोई तरीका है?

मैं माता-पिता .getObject () में से [कुछ तर्क] दोहरीकरण से बचने की कोशिश कर रहा हूँ, लेकिन मुझे लगता है कि अगर इसके आस पास वास्तव में कोई रास्ता नहीं है।

आप या तो getObject बना सकते हैं () विधि निजी या विधि नाम बदल दें ताकि बहुरूपता पर किक नहीं होगा। कुल मिलाकर, आपको अपने डिजाइन पर पुनर्विचार करना होगा।

अन्य विकल्प [कुछ तर्क] को तीसरे तरीकों से निकालने और इसे getObject () और getObjectValue () । जब आप इस डिज़ाइन का उपयोग करते हैं, तो कृपया कमान क्वेरी अलग सिद्धांत को ध्यान में रखें।

Comments

Popular posts from this blog

c# - LINQ to Entities does not recognize the method 'Int32 IndexOf(System.String, System.StringComparison)' method -

Pygame memory leak with transform.flip -

python - Writing Greek in matplotlib labels, titles -