निम्नलिखित मानें: हमारे पास कक्षा बी है, जो वर्ग ए के अंदर घिरा हुआ एक निजी वर्ग है। कक्षा बी से विरासत में कोई भी वर्ग विरासत नहीं है। प्रश्न यह है: क्या संकलक स्वचालित रूप से कक्षा बी को मुहरबंद के रूप में चिह्नित करेगा? (वीबी में nonInheritable)। क्या संकलक के लिए कोई अच्छा कारण नहीं है कि कक्षा बी को मुहरबंद के रूप में चिह्नित न करें?निजी कक्षाओं को संकलन पर सील कर रहे हैं?
मेरी विचार की रेखा यह है: चूंकि कक्षा बी कक्षा ए के अंदर घोंसला है और निजी बी है, और कक्षा बी से विरासत में कोई अन्य वर्ग नहीं है, इसे सुरक्षित करना सुरक्षित होना चाहिए, क्योंकि इसे बाहर विरासत में नहीं लिया जा सकता है कक्षा ए (ए के उप-वर्गों द्वारा भी नहीं)।
Class A
Private Class B
End Class
End Class
जेआईटी निर्धारित कर सकता है कि कक्षा में वंशज हैं या नहीं, लेकिन मुझे विश्वास नहीं है कि यह एक प्रकार पर मुहरबंद बिट की उपस्थिति से बाहर है। मेरे पास इस पर मुझे वापस करने के लिए कोई संदर्भ नहीं है लेकिन मैं इस बिंदु पर काफी निश्चित हूं। – JaredPar
@ जेरेडपायर, जहां तक मुझे पता है कि कई जावा वीएम लंबे समय से ऐसा कर रहे हैं (जो डिफ़ॉल्ट-वर्चुअल-विधि के कारण वास्तव में आवश्यक है - http://www.ibm.com/developerworks/library/j- jtp12214 /), और मुझे पूरा यकीन है कि एमएस ऐसा अनुकूलन करता है अगर उन्हें प्रदर्शन में मदद के रूप में देखा गया हो। – Lucero
@ लुसेरो जेआईटी निश्चित रूप से सीलबंद कक्षाओं के लिए करता है। लेकिन मामलों में केवल एक बहुत ही छोटा सबसेट है जहां यह गैर-मुहरबंद वर्गों के लिए ऐसा कर सकता है। मुझे यकीन नहीं है कि क्या माइक्रो-ऑप्टिमाइज़ेशन इसके लायक होगा। लेकिन जैसे मैंने कहा, मुझे किसी भी दस्तावेज़ को एक या दूसरे तरीके से नहीं मिल रहा है। – JaredPar