objective c - Can I use a category to override a method which is itself in category on the superclass? -
@interface माइस्परक्लास: NSObject {} @end @interface MySuperclass (MyCategory) - (शून्य) myMethod; @end @ इंटफेस माइस्ब्स क्लास: मायस्परक्लास {} @एंड @ इंटफेस माइस्ब्बैसलाइज़ (मायऑपरएक्चर) - (शून्य) मेरी मैथ्यू; क्या यह परिभाषित किया गया है कि मेरे-मैथि को कार्यान्वित किया जाएगा?
Kochan प्रोग्रामिंग में उद्देश्य सी में बताता है कि:
< P> अगर एक से अधिक वर्ग एक ही वर्ग के समान नाम के साथ एक विधि घोषित करता है, तो यह परिभाषित नहीं किया जाता है कि कौन सी पद्धति को लागू किया जाएगा। लेकिन मुझे यकीन नहीं है कि सुपरक्लास पर एक श्रेणी को इस संदर्भ में एक ही कक्षा में एक श्रेणी माना जाता है।
हालांकि मैं कोई संदर्भ नहीं मिल सकता है, मुझे लगता है कि यह स्पष्ट है कि MySubclass (MyOtherCategory) में कार्यान्वयन
प्राथमिकता लेता है श्रेणी के तरीकों को उस विशेष वर्ग में जोड़ दिया जाता है, इसलिए "मायऑपर कैरेबियन" कार्यान्वयन आपके उप-क्लास से संबंधित होगी, और संदेश प्रेषण के दौरान सुपरक्लास पर जाने से पहले उसे देखा जाएगा।
जैसा कि बताया गया है उद्देश्य सी मैनुअल, कोको में कई तरीकों को श्रेणियों में रखा गया है। अगर रूपरेखा के क्रम को अच्छी तरह से परिभाषित नहीं किया गया था, तो आप उन उप-श्रेणियों में श्रेणियों में से किसी भी तरीके को ओवरराइड नहीं कर पाए हैं, जो श्रेणियों को लगभग बेकार कर देगा।
Comments
Post a Comment