2012-06-14 8 views
15

कक्षा फ़ाइल कितनी इंटरफेस लागू कर सकती है? क्या कक्षा फ़ाइल द्वारा उपयोग किए जाने वाले इंटरफेस की संख्या पर कोई सीमा है? अग्रिम में धन्यवाद।कक्षा फ़ाइल कितनी इंटरफेस लागू कर सकती है

उत्तर

21

सभी व्यावहारिक उद्देश्यों के लिए, एक कक्षा लागू करने वाले इंटरफेस की संख्या पर कोई सीमा नहीं है, लेकिन जावा आपको कई सुपरक्लास से वंचित नहीं होने देता है।

हालांकि, अगर आप वास्तव में नाइटपिक करना चाहते हैं, तो आप कह सकते हैं कि एक वर्ग लागू करने वाले इंटरफ़ेस की संख्या जावा बाइटकोड में इंटरफ़ेस आईडी अधिकतम मूल्य से बंधी जा सकती है, या आपके द्वारा लागू की जाने वाली कोड मेमोरी की मात्रा इन इंटरफेस, या आपके बाइटकोड को स्टोर करने के लिए हार्ड ड्राइव स्पेस की मात्रा। ये मूर्ख तर्क हैं। जाहिर है, क्योंकि आपके कंप्यूटर में अनंत स्मृति, अनंत थ्रूपुट, और अनंत कोड स्थान नहीं है, हम जानते हैं कि सब कुछ पर सैद्धांतिक अधिकतमताएं हैं, जैसे कि एक जार में आपके पास कोड की सैद्धांतिक अधिकतम संख्या की संख्या है।

लेकिन क्या तुम सच में वास्तव में इंटरफेस एक वर्ग को लागू कर सकते हैं के सैद्धांतिक अधिकतम संख्या में जानना चाहते हैं, तो यह 65535

+0

मेरे पास कक्षाएं हैं जो एक से अधिक कक्षाओं को उप-वर्गीकृत करती हैं। और यह सुंदर था। – mre

+0

हां, अजगर एक सुंदर भाषा है। –

+0

@mre मुझे नहीं लगता कि आप समझते हैं कि उसने जो कहा वह काम करता है ಠ_ಠ –

5

सीमा तकनीकी से अधिक व्यावहारिक है।

हाथी लिखित कोड के लिए दर्जनों में एक यथार्थवादी सीमा है। जेनरेट कोड के लिए आपके पास बहुत कुछ हो सकता है, लेकिन मुझे संदेह है कि आपके पास अपने डिज़ाइन के साथ कुछ गड़बड़ है यदि आपके पास बहुत सारे हैं।

The limit in the file format is 65535.

को देखते हुए सबसे बड़ी परियोजनाओं से भी कम समय 10K श्रेणियां होती हैं, तो यह कल्पना करना मुश्किल है कि आप लागू करना चाहते हैं कि एक कक्षा में कई इंटरफेस।

17

जावा वी एम विशिष्टता से Limitations of the JVM पर:

क्लास अथवा अंतरफलक के प्रत्यक्ष superinterfaces की संख्या classfile संरचना के interfaces_count आइटम के आकार से 65535 तक सीमित है।

यह एकमात्र सीमा है। और यह संकलित जावा बाइटकोड की संरचना के कारण है।

+0

जावा भाषा विनिर्देश! = जेवीएम विनिर्देश। – dacwe

+0

@dacwe यहां सीमा जावा भाषा के साथ नहीं है लेकिन क्लासफ़ाइल विनिर्देश के साथ है। – Jivings

+0

निश्चित रूप से! जावा को बाइटकोड से कुछ और संकलित किया जा सकता है ... – dacwe

-1

एक कक्षा लागू करने वाले इंटरफेस की संख्या पर कोई सीमा नहीं है।

2

आपकी कक्षा असीमित संख्या Interfaces और एक Interface लागू कर सकती है Interfaces असीमित संख्या का विस्तार कर सकती है लेकिन सर्वोत्तम अभ्यास कई इंटरफेस को लागू नहीं करना है।