2010-10-15 10 views
5

मैं सोच रहा था कि क्या सीमित समय है कि मैं कक्षा का उत्तराधिकारी हो सकता हूं? या ऐसे कारक क्या हैं जो इसे प्रभावित कर सकते हैं?जावा में विरासत का अधिकतम स्तर क्या है?

+1

मुझे आशा है कि आप इस तरह की सीमा तक कभी नहीं पहुंचें (यदि यह मौजूद है) :) – Bozho

+1

इसे बंद करने का अनुरोध क्यों है? क्या यह एक असली सवाल नहीं है? –

उत्तर

13

पढ़ें this (इसका मज़ा)

The system is out of resources. 
Consult the following stack trace for details. 
java.lang.StackOverflowError 
+3

+1, वास्तव में संकलित करने के लिए ~ 60 स्तरों का गहराई का जवाब * और उन लोगों के लिए * जो – Brian

+0

लिंक पर क्लिक करने से पहले जवाब जानना चाहते हैं, दिलचस्प प्रयोग, लेकिन @ जोनाथन का जवाब अभी भी सत्य है: सभी व्यावहारिक अनुप्रयोगों के लिए कोई सीमा नहीं है –

+0

अच्छा लेख ... –

4

सभी व्यावहारिक अनुप्रयोगों के लिए, जावा में विरासत पेड़ अनंत आकार तक बढ़ सकते हैं।

3

विनिर्देशन में कोई विशिष्ट सीमा नहीं है।

शायद एक कार्यान्वयन-निर्भर सीमा है, अगर केवल उसमें उपलब्ध स्मृति से सीमित है (कक्षा की जानकारी कहीं भी संग्रहीत करने की आवश्यकता है)।

और यदि आप कभी भी उस सीमा तक पहुंचते हैं, तो आपका डिज़ाइन किसी भी तरह टूट जाता है (जो कुछ भी डबल अंकों में जाता है वह निश्चित रूप से कोड गंध है)।

0

यदि कोई वर्ग final है, तो आप इसका वारिस नहीं कर सकते हैं।

इसके अलावा, आप असीमित विरासत पेड़ प्राप्त कर सकते हैं। आप असीमित implement कई इंटरफ़ेस कक्षाएं भी कर सकते हैं।

+1

कई इंटरफेस को लागू करने से व्यापक विरासत के पेड़ होते हैं, 'हालांकि, गहरे लोगों के लिए नहीं। –

+0

असल में नहीं - @ पिनिची का जवाब देखें। –

+0

@ जोचिम सॉर, सच है, मैं बस इतना विस्तार कर रहा था कि आप दोनों विरासत में गहराई से गहराई से जा सकते हैं और असीम रूप से व्यापक भी हो सकते हैं .... –

0

कोई निर्दिष्ट सीमा नहीं है। सभी व्यावहारिक उद्देश्यों के लिए, यह अनंत है।

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