नेट फ्रेमवर्क में बड़ी संख्या में कक्षाओं को 'मुहरबंद' के रूप में चिह्नित किया गया है, जो आपको उन वर्गों को विरासत में रखने से रोकते हैं। निश्चित रूप से यह ऑब्जेक्ट ओरिएंटेशन की प्रकृति के खिलाफ जाता है, जहां आप मौजूदा वस्तुओं के व्यवहार को बढ़ा सकते हैं और फिर से परिभाषित कर सकते हैं।नेट में 'मुहरबंद' कीवर्ड क्यों मौजूद है?
क्या 'मुहरबंद' कीवर्ड के अस्तित्व के लिए कोई अच्छा कारण है? सिल्वरलाइट में
उदाहरण के लिए, NotifyCollectionChangedEventArgs बंद है। मैं करना चाहता था ObservableCollection कि AddRange और RemoveRange समर्थित के अपने खुद के संस्करण बनाने, लेकिन NCCEA की सिल्वरलाइट संस्करण नहीं है एक निर्माता कि NewItems के लिए से अधिक आइटम और OldItems गुण है, जो पहले से ही के रूप में परिभाषित कर रहे हैं का समर्थन करता है प्रदान करते हैं ILists। आमतौर पर, मैं बस कक्षा को अपने स्वयं के संस्करण के साथ विस्तारित करता हूं जो न्यूइटम और ओल्डइटम गुणों को ओवरराइड करता है, लेकिन इस मामले में मैं नहीं देख सकता और मुझे कोई कारण नहीं दिख रहा है कि ऐसा क्यों होना चाहिए।
आप एरिक लिपर्ट के ब्लॉग पोस्ट को पढ़ना चाहेंगे क्यों .NET ढांचे में अधिकांश चीजें सील कर दी गई हैं: http://blogs.msdn.com/ericlippert/archive/2004/01/22/61803.aspx – gix
क्योंकि जावा 'अंतिम' श्रेणी संशोधक/एस –