एक वर्ग को चिह्नित करना Sealedमहत्वपूर्ण सुरक्षा वर्गों से छेड़छाड़ को रोकता है जो सुरक्षा से समझौता कर सकते हैं, या प्रदर्शन को प्रभावित कर सकते हैं।
कई बार, एक वर्ग को सील करना भी समझ में आता है जब कोई उपयोगिता वर्ग को निश्चित व्यवहार के साथ डिजाइन कर रहा होता है, जिसे हम बदलना नहीं चाहते हैं।
उदाहरण के लिए, Systemनेमस्पेस C#कई वर्गों को प्रदान करता है जो सील कर दिए जाते हैं, जैसे कि String। यदि सील नहीं किया गया है, तो इसकी कार्यक्षमता को बढ़ाना संभव होगा, जो अवांछनीय हो सकता है, क्योंकि यह एक बुनियादी प्रकार है जो दी गई कार्यक्षमता है।
इसी तरह, structuresमें C#हमेशा परोक्ष सील कर रहे हैं। इसलिए एक संरचना / वर्ग को दूसरी संरचना से प्राप्त नहीं किया जा सकता है। इसका तर्क यह है कि structuresकेवल स्टैंड-अलोन, परमाणु, उपयोगकर्ता-परिभाषित डेटा प्रकारों को मॉडल करने के लिए उपयोग किया जाता है , जिसे हम संशोधित नहीं करना चाहते हैं।
कभी-कभी, जब आप कक्षा पदानुक्रम का निर्माण कर रहे होते हैं, तो आप अपने डोमेन मॉडल या व्यावसायिक नियमों के आधार पर विरासत श्रृंखला में एक निश्चित शाखा को बंद करना चाह सकते हैं।
उदाहरण के लिए, ए Managerऔर PartTimeEmployeeदोनों Employeeएस हैं, लेकिन आपके संगठन में अंशकालिक कर्मचारियों के बाद आपकी कोई भूमिका नहीं है। इस मामले में, आप PartTimeEmployeeआगे की शाखाओं को रोकने के लिए सील करना चाह सकते हैं । दूसरी ओर, यदि आपके पास प्रति घंटा या साप्ताहिक अंशकालिक कर्मचारी हैं, तो हो सकता है कि यह उनसे विरासत में मिले PartTimeEmployee।