2012-02-27 22 views
7

विभिन्न स्रोतों में मैंने विषय पर विभिन्न चीजें पढ़ी हैं। उदाहरण के लिए विकिपीडिया कहता है:गतिशील बाध्यकारी == जावा में देर से बाध्यकारी या नहीं?

देर बाध्यकारी अक्सर गतिशील प्रेषण के साथ उलझन में है, लेकिन महत्वपूर्ण अंतर हैं।

लेकिन एक जोड़ी लाइनों बाद में

यह अवधि देर गतिशील प्रेषण के पर्याय के रूप जावा प्रोग्रामिंग में बाध्यकारी उपयोग करने के लिए लोकप्रिय है। विशेष रूप से, यह वर्चुअल विधियों के साथ उपयोग की जाने वाली जावा की एकल प्रेषण तंत्र को संदर्भित करता है।

तो सत्य कहां है और यह "महत्वपूर्ण मतभेद" क्या हैं?

+1

क्या आप आलसी लोडिंग का जिक्र कर रहे हैं? – bmoran

+1

@bmoran: नहीं। वह एक और मौलिक भाषा स्तर की बात के बारे में बात कर रहा है। Http://en.wikipedia.org/wiki/Late_binding#Late_binding_in_Java और http://en.wikipedia.org/wiki/Dynamic_dispatch देखें। – Asaph

उत्तर

6

देर से बाध्यकारी और गतिशील एकल प्रेषण सभी उद्देश्यों और उद्देश्यों के लिए समान हैं। गतिशील एकल प्रेषण में, एकल ऑब्जेक्ट का मान या पहचान निर्धारित करता है कि रनटाइम पर कौन सा कोड लागू किया जाता है, और जावा में यही होता है।

सामान्य रूप में अवधि गतिशील प्रेषण सबसे अधिक बार गतिशील कई प्रेषण, जो है, जहां क्रम विधि पहचान या एक से अधिक वस्तु है, जिनमें से मूल्यों पर आधारित क्रम में चुना जाता है अर्थ में किया जाता है सीएलओएस और स्मॉलटॉक में एक भाषा सुविधा, लेकिन जावा या सी ++ में नहीं।

+1

+1, लेकिन मैं पाइथन जैसी भाषा के पूरी तरह से देर से बाध्य आविष्कार के रूप में "देर से बाध्यकारी" की विशेषता रखूंगा, जबकि जावा का गतिशील एकल प्रेषण का मॉडल वास्तव में आंशिक रूप से प्रारंभिक, आंशिक रूप से देर से बाध्यकारी है, सी ++ वर्चुअल विधियों की तरह । –

+0

मैंने माना था कि जावा 7 में गतिशील प्रेषण का प्रदर्शन गतिशील प्रेषण किया गया था। http://java.sun.com/developer/technicalArticles/DynTypeLang/ क्या अंतर है? –

+0

@DanielPryden - वास्तव में, मैं इसके साथ सहमत हूं। आप "पूरी तरह से देर से बाध्य" कह रहे हैं, मैं "बतख टाइपिंग" कहता हूं; यह मूल रूप से टाइप-आधारित लुकअप के बजाय विधि-आधारित है। –

संबंधित मुद्दे