การทำเครื่องหมายคลาสเป็นการSealedป้องกันการปลอมแปลงคลาสสำคัญที่อาจทำให้ความปลอดภัยลดลงหรือส่งผลต่อประสิทธิภาพ
หลายครั้งการปิดผนึกคลาสก็สมเหตุสมผลเช่นกันเมื่อมีการออกแบบคลาสยูทิลิตี้ที่มีพฤติกรรมคงที่ซึ่งเราไม่ต้องการเปลี่ยนแปลง
ตัวอย่างเช่นSystemเนมสเปซในC#มีหลายคลาสที่ปิดผนึกเช่นString. หากไม่ได้ปิดผนึกอาจเป็นไปได้ที่จะขยายฟังก์ชันการทำงานซึ่งอาจไม่เป็นที่ต้องการเนื่องจากเป็นประเภทพื้นฐานที่มีฟังก์ชันการทำงานที่กำหนด
ในทำนองเดียวกันstructuresในC#จะถูกปิดผนึกโดยปริยายเสมอ ดังนั้นจึงไม่สามารถรับโครงสร้าง / คลาสหนึ่งจากโครงสร้างอื่นได้ เหตุผลนี้structuresใช้เพื่อสร้างแบบจำลองเฉพาะชนิดข้อมูลแบบสแตนด์อะโลนอะตอมที่ผู้ใช้กำหนดซึ่งเราไม่ต้องการแก้ไข
บางครั้งเมื่อคุณกำลังสร้างลำดับชั้นคุณอาจต้องการปิดสาขาบางสาขาในสายการสืบทอดโดยยึดตามรูปแบบโดเมนหรือกฎทางธุรกิจของคุณ
ตัวอย่างเช่น a ManagerและPartTimeEmployeeเป็นทั้งสองEmployeeแต่คุณไม่มีบทบาทใด ๆ หลังจากพนักงานพาร์ทไทม์ในองค์กรของคุณ ในกรณีนี้คุณอาจต้องการปิดผนึกPartTimeEmployeeเพื่อป้องกันการแตกแขนงเพิ่มเติม ในทางกลับกันหากคุณมีพนักงานพาร์ทไทม์รายชั่วโมงหรือรายสัปดาห์อาจเป็นเรื่องที่สมเหตุสมผลที่จะรับช่วงต่อจากPartTimeEmployeeนั้น