2010-05-03 11 views
9

मुझे सी ++ शुद्ध आभासी कक्षाओं के बारे में पता है, लेकिन जावा एक कदम आगे चला गया और एकाधिक इंटरफ़ेस (कार्यान्वयन नहीं) विरासत, interface के लिए प्रथम श्रेणी (कोई पन इरादा नहीं) अवधारणा बनाई। यह अब प्रमुख स्थैतिक-टाइप की गई भाषाओं का प्रमुख है। क्या जावा ने इंटरफ़ेस अवधारणा का आविष्कार किया था? या क्या यह पुरानी भाषाओं में भी प्रथम श्रेणी की अवधारणा के रूप में दिखाई देता है?क्या जावा ने इंटरफेस का आविष्कार किया था?

+1

क्या जावा के डिजाइनरों ने वास्तव में कुछ भी खोजा था? AFAIK, वे बस विचारों का एक समूह लाया जो भाषा की शुरुआत से कुछ समय पहले घूम रहा था। –

+1

@Neil: सच है, लेकिन इस तरह अधिकांश गैर-शैक्षणिक भाषाएं बनाई गई थीं। –

+0

@ जोचिम हां, मैं आलोचना का इरादा नहीं कर रहा था। –

उत्तर

15

यहां जावा भाषा पर्यावरण लेख से सार है।

जावा भाषा में एक इंटरफ़ेस बस उन तरीकों का एक विनिर्देश है जो किसी ऑब्जेक्ट ने इसे लागू किया है। एक इंटरफ़ेस में आवृत्ति चर या कार्यान्वयन कोड शामिल नहीं है - केवल स्थिरांक और विधियों की घोषणाएं। जावा भाषा में एक इंटरफ़ेस की अवधारणा को प्रोटोकॉल के उद्देश्य-सी अवधारणा से उधार लिया गया था।

http://java.sun.com/docs/white/langenv/Object.doc2.html#6185

2

फ़ील्ड के बिना शुद्ध आभासी कक्षाओं को जावा से पहले भी सी ++ इंटरफेस में बुलाया गया था। जावा के इंटरफेस के पीछे विचार गंदा एकाधिक विरासत को हटाना था क्योंकि यह सी ++ में था, लेकिन समान क्षमताओं को छोड़ दें।

1

मुझे पूरा यकीन है कि जावा डेवलपर्स ने इंटरफेस की अवधारणा का आविष्कार नहीं किया लेकिन वे उन्हें लोकप्रिय बनाते हैं।

5

जहां तक ​​मुझे पता है कि उद्देश्य-सी इंटरफेस की विशेषता रखने वाली पहली भाषा थी। जावा का आविष्कार करने से पहले कम से कम यह था।

+0

मुझे उद्देश्य-सी नहीं पता है, लेकिन इसकी विकिपीडिया प्रविष्टि से, ऐसा लगता है कि इसका 'इंटरफेस' एक विशिष्ट वर्ग इंटरफ़ेस (जैसे सी ++ हेडर फ़ाइल) की अग्रेषित घोषणा से अधिक संबंधित है, और जावा इंटरफ़ेस अवधारणा के लिए नहीं । मुझे सही जवाब दो अगर मैं गलत हूँ! –

+2

बेशक, लेकिन 'इंटरफ़ेस' अवधारणा को उद्देश्य-सी में 'प्रोटोकॉल' कहा जाता है। –

1

आईडीएल, कोर्बा द्वारा उपयोग किया जाता है, मेरा मानना ​​है कि 80 के दशक की शुरुआत में वापस आ गया है।

+0

हां, लेकिन आईडीएल भाषा का हिस्सा नहीं है, बल्कि भाषा के संपर्क के लिए एक विनिर्देश है। लेकिन आप सही हैं, इसने कुछ क्षमता में जावा इंटरफेस अवधारणा को प्रभावित किया होगा। –

+1

@ Jordão IDL एक प्रोग्रामिंग भाषा नहीं है। हालांकि यह एक भाषा है (वह एल बिट है)। –

4

मैं यकीन है कि IUnknown और IDispatch जावा से पहले से ही अस्तित्व में हूँ ... लेकिन उस कॉम, जो वास्तव में एक भाषा नहीं है।

+0

कोर्बा के साथ वही बात। –

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

  • कोई संबंधित समस्या नहीं^_^