2010-06-02 33 views
5

दोस्तों क्या हम ऑब्जेक्ट से किसी अन्य वर्ग से प्राप्त करते हैं (बेशक कि हमें स्पष्ट रूप से यह बताने की ज़रूरत नहीं है) या ऑब्जेक्ट क्लास के लिए कुछ विशेष विशेषाधिकार हैं और इसे अन्य वर्गों के रूप में विरासत में नहीं मिला है?क्या हम ऑब्जेक्ट से प्राप्त करते हैं?

+12

असल में हम ऐसा नहीं करते क्योंकि हम इंसान हैं, जावा ऑब्जेक्ट्स नहीं। – BoltClock

+1

वैसे हम तकनीकी रूप से ऑब्जेक्ट्स (हालांकि बहुत जटिल हैं) ... भले ही हम इस तरह के बारे में सोचना पसंद नहीं करते हैं। – CheesePls

उत्तर

2

नहीं, यह वही है। यहाँ JLS 8.1.3 से अंश:

किसी अन्य वर्ग के लिए वर्ग घोषणा नहीं है खंड फैली है, तो वर्ग वर्ग Object अपने अंतर्निहित प्रत्यक्ष सुपर क्लास के रूप में है।

Object को छोड़कर प्रत्येक वर्ग के एक विस्तार (कि, के एक उपवर्ग है) एक भी मौजूदा वर्ग है (§8.1:

बेशक

, Object अपने आप में एक बिट विशेष (JLS) है .3) और इंटरफेस लागू कर सकते हैं (§8.1.4)।

+0

और क्या होता है यदि कक्षा ने खंड बढ़ाया है, क्योंकि आप इसे निर्दिष्ट नहीं करते हैं। –

+1

@ जानना सभी वर्गों को 'ऑब्जेक्ट' से प्रत्यक्ष या अप्रत्यक्ष रूप से प्राप्त होता है। विरासत संबंध निश्चित रूप से एक चक्र नहीं बना सकता है। 'ऑब्जेक्ट' कक्षा केवल एकमात्र है जो किसी से भी विरासत में नहीं है, यह पदानुक्रम का शीर्ष है। http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html 'ऑब्जेक्ट' या किसी अन्य वर्ग से विरासत के बीच कोई अंतर नहीं है, और आदिम प्रकारों को छोड़कर, सबकुछ एक वस्तु है। यहां तक ​​कि सरणी ऑब्जेक्ट्स हैं http://java.sun.com/docs/books/jls/second_edition/html/arrays.doc.html। – ewernli

+0

@ewernli तो यदि आप कह रहे हैं कि किसी ऑब्जेक्ट से विरासत में प्राप्त करने और किसी अन्य वर्ग से विरासत में कोई अंतर नहीं है, तो हम इस तरह के एक से अधिक वर्गों से क्यों उत्तराधिकारी हो सकते हैं: सार्वजनिक वर्ग MyClass YourClass {} को बढ़ाता है? –

0

सब कुछ जावा में एक ऑब्जेक्ट है। ऑब्जेक्ट की सभी विधियां (toString(), wait(), आदि) किसी भी जावा क्लास के किसी भी उदाहरण पर कॉल की जा सकती हैं।

+0

* "सब कुछ जावा में एक वस्तु है।" * सच नहीं है। Primitives 'ऑब्जेक्ट' नहीं हैं। –

+0

@ ओम-नाम-नाम आपकी टिप्पणी pedantic लगता है। इस सवाल का प्राइमेटिव्स के साथ कुछ लेना देना नहीं था। –

5

जावा में प्रत्येक कक्षा एक वस्तु है। वे ऑब्जेक्ट्स की तरह व्यवहार करते हैं, उन्हें ऑब्जेक्ट प्रकार के संग्रह में जोड़ा जा सकता है, वे ऑब्जेक्ट में परिभाषित किसी भी विधि का उपयोग कर सकते हैं।

तो, हाँ, सबकुछ (प्राइमेटिव को छोड़कर) जावा में ऑब्जेक्ट से प्राप्त होता है।

संपादित करें: जावा "सब कुछ एक वस्तु है" का दृष्टिकोण लेता है। यह ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग को बल देता है।

उदाहरण: कक्षा एक अन्य वर्ग विस्तार नहीं करता

  • तो यह स्वाभाविक वस्तु फैली हुई है।

  • यदि कक्षा ए एक और कक्षा बी बढ़ाता है, तो यह ऑब्जेक्ट को भी बढ़ाता है क्योंकि बी ने ऑब्जेक्ट बढ़ाया होगा।

+0

तो यह हाँ या नहीं है? मैं पूछ रहा हूं क्योंकि मुझे दो जवाब मिल रहे हैं जो दोनों एक-दूसरे के विरोधाभास कर रहे हैं। –

+0

उत्तर है "हम ऑब्जेक्ट से किसी अन्य वर्ग से प्राप्त होते हैं (बेशक कि हमें स्पष्ट रूप से यह बताना नहीं है)" – CheesePls

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