मेरा मानना है कि कारण यह है कि उजागर प्रकार सभी अलग-अलग प्रकार की भाषाओं (सी #, सी ++, जावास्क्रिप्ट भविष्य में किसी और से अधिक) से उपयोग योग्य होना चाहिए।
तो यदि आपके पास कक्षा है, तो कक्षा के उपयोग में से एक इसे नई कक्षा में ओवरराइड कर रहा है। मैं वर्ग को ओवरराइड करना चाहता हूं, जो अलग-अलग भाषा में किया जाता है। लेकिन यह एक समस्या है। सी ++ में किए गए उत्तराधिकारी वर्ग द्वारा, सी # में किए गए बेस क्लास को ओवरराइड करना चाहते हैं? यह कभी काम नहीं कर सकता है, क्योंकि उनमें से दोनों पूरी तरह से अलग और असंगत ओओपी कार्यान्वयन हैं।
खुला कक्षाओं को सील करने के लिए मजबूर कर, आप इस समस्या को हटा दें और सुनिश्चित करें कि लोग ऐसा कुछ करने की कोशिश नहीं करेंगे।
मुझे यकीन है कि इससे कहीं अधिक मौलिक चीजें हैं, लेकिन यह मेरे दिमाग में पहले आया था।
आपका शीर्षक इस प्रश्न से असहमत प्रतीत होता है? ("मुहरबंद होना चाहिए" बनाम "मुहरबंद की अनुमति नहीं देता है") –