2010-04-07 17 views
8
के अनुसार

, http://www.freshvanilla.org:8080/display/www/Java+Interview+Questionsजावा में शून्य है?

के तहत,

कौन सा वर्ग हर वर्ग के सुपर क्लास है?

शून्य लगता है।

मैंने पाया कि

new Object().getClass().getSuperClass() 

सही रूप में जवाब की पुष्टि करता है। लेकिन क्या कक्षा को कक्षा माना जा सकता है? मैं सभी आदिम डेटा प्रकार जावा से कक्षा वस्तुओं के रूप में प्रतिनिधित्व कर रहे हैं देखना [dot] sun.com/j2se/1.4.2/docs/api/java/lang/Class.html

+1

मुझे बस आपके 'नए ऑब्जेक्ट()। GetClass()। GetSuperClass() == null' से प्यार है। –

+2

जो भी व्यक्ति उस पृष्ठ को लिखा है वह वास्तव में नहीं जानता कि वे किस बारे में बात कर रहे हैं। मैं पूरी चीज छूट दूंगा। मूल प्रश्न के लिए, इसे दोहराया जाना चाहिए "कौन सा वर्ग खुद को छोड़कर हर वर्ग का सुपरक्लास है?" –

+0

@ केविनबोरिलियन +1 आपकी टिप्पणी में यह सुझाव देने के लिए कि मूल प्रश्न को बेहतर ढंग से बताया जाना चाहिए "कौन सा वर्ग खुद को छोड़कर हर वर्ग का सुपरक्लास है?" – sactiw

उत्तर

28

यह एक खराब साक्षात्कार प्रश्न है। मुझे पूरा यकीन है कि वे जो जवाब ढूंढ रहे हैं वह Object है, null नहीं है। null एक कक्षा नहीं है। इसका अर्थ क्या है जब getSuperClass रिटर्न null "कोई सुपरक्लास नहीं है"। null केवल एक विशेष मूल्य है जो एक संदर्भ हो सकता है। यदि null एक कक्षा थी, तो आप null प्रकार की वस्तुओं को तुरंत चालू करने में सक्षम होंगे। किसी भी अन्य प्रकार के संदर्भ में null असाइन करने का अर्थ भी नहीं होगा।

+0

धन्यवाद जो इसे साफ़ करता है। – Somerandomeguy

1

याद रखें कि Class वर्ग है खुद एक कक्षा। तो जब आप c.getClass() पर कॉल करते हैं तो आप Class कक्षा में वापस आ रहे हैं। इसलिए Object की सुपर क्लास getSuperClass() विधि कुछ भी वापस नहीं कर सकता है, इसलिए यह null लौटाता है।

5

जावा java.lang.Object सभी अन्य वस्तुओं के अभिभावक (रूट) है और इसमें कोई पूर्ववर्ती नहीं है।

नल एक वस्तु नहीं है, यह इंगित करता है कि कोई ऑब्जेक्ट उपलब्ध नहीं है (शून्य संदर्भ)।

भी JLS Chapter 4

1

देखें आप अन्य आदिम प्रकार के लिए अशक्त वस्तु डाली नहीं कर सकते हैं और आप इसे से विरासत नहीं है। जावा में शीर्ष स्तर की कक्षा वस्तु है।

0

वस्तु सभी वर्ग के सुपर वर्ग है और अशक्त संदर्भ

6

मुझे लगता है कि वस्तु वर्ग जवाब है आपत्ति है।

javadoc से।

new Object().getClass().getSuperClass() 

इस कक्षा या तो वस्तु वर्ग, एक अंतरफलक, एक आदिम प्रकार, या शून्य का प्रतिनिधित्व करता है, तो अशक्त दिया जाता है। इसका मतलब यह नहीं है कि शून्य शून्यपर है।

यदि शून्य एक वर्ग है, तो मुझे लगता है कि यह शून्य होना चाहिए। शून्य एक वर्ग नहीं है।

+0

+1 "अगर शून्य एक वर्ग है, तो इसे शून्य कहा जाना चाहिए" :-) मेरा मानना ​​है कि आपका मतलब है 'कक्षा' वर्ग उत्तर है। ऐसा लगता है कि 'कक्षा' कक्षा में मौजूद getSuperClass() विधि संदर्भित ऑब्जेक्ट द्वारा प्रतिनिधित्व कक्षा के सुपरक्लास को लौटाती है और यदि उस ऑब्जेक्ट द्वारा प्रतिनिधित्व की गई कक्षा ऑब्जेक्ट क्लास, इंटरफ़ेस, एक आदिम प्रकार या शून्य है, तो यह getSuperClass () विधि बस शून्य वापस आती है। – sactiw

0

खराब शब्द प्रश्न। केवल 'सरल' उत्तर प्रश्न के उत्तर के रूप में सही है। दूसरों को सिर्फ भ्रमित कर रहे हैं।

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