रूबी में, हम निम्नलिखित कोड शो की तरह संबंधित सुपर क्लास की सिंगलटन विधि को कॉल करने के लिए सिंगलटन विधि के भीतर super
का उपयोग कर सकते हैं।रुबी में बेस और व्युत्पन्न वर्ग के मेटाक्लास के बीच संबंध क्या है?
class Base
def self.class_method
puts "Base class method"
end
end
class Derived < Base
def self.class_method
puts "Derived class method"
super
end
end
Derived.class_method
# Derived class method
# Base class method
हालांकि, मैं नहीं लगते काफी हो कैसे Derived.class_method
भीतर super
करने के लिए कि कॉल Base.class_method
तक पहुंच सकता है। मुझे लगता है कि class_method
को उनके मेटाक्लास पर परिभाषित किया गया है, क्या इसका मतलब है कि उनके मेटाक्लास के माता-पिता/बाल संबंध हैं? मैं इस सवाल पूछ रहा हूँ क्योंकि मैं कहीं वहाँ आधार bettwen संबंध किसी तरह का और व्युत्पन्न वर्ग 'metaclass है देखकर याद (लेकिन मैं नहीं कर सकता:
अद्यतन (मैं काफी है कि प्रयोगों द्वारा पुष्टि नहीं कर सकते) इसे और ढूंढें)। यह जानने के अलावा कि वास्तव में super
काम करता है, मैं यह भी पुष्टि करना चाहता हूं कि दो मेटाक्लास पूरी तरह से अलग हैं या नहीं।
वहाँ एक रास्ता #Base और #Derived के बीच के रिश्ते को 'देख' है? उदाहरण के लिए, सामान्य '। सुपरक्लास' की तरह। – bryantsai
मैंने उस चाल को जोड़ा जो छिपाने से बाहर एक ईजिनक्लास प्राप्त करता है। लेकिन आरेख इस बात से सुसंगत नहीं है कि चाल क्या दिखाती है :( –
अच्छी तरह से ... # <कक्षा: व्युत्पन्न> #नहीं है, यह मेरी समस्या है ... #Derived से #Base का लिंक वास्तव में मौजूद है? – bryantsai