Menandai kelas sebagai Sealedmencegah perusakan kelas penting yang dapat membahayakan keamanan, atau memengaruhi kinerja.
Seringkali, menyegel kelas juga masuk akal ketika seseorang mendesain kelas utilitas dengan perilaku tetap, yang tidak ingin kita ubah.
Misalnya, Systemnamespace di C#menyediakan banyak kelas yang disegel, seperti String. Jika tidak disegel, dimungkinkan untuk memperluas fungsinya, yang mungkin tidak diinginkan, karena ini adalah tipe dasar dengan fungsionalitas tertentu.
Demikian pula, structuresin C#selalu tersegel secara implisit. Karenanya seseorang tidak dapat memperoleh satu struktur / kelas dari struktur lain. Alasan untuk ini adalah yang structuresdigunakan untuk memodelkan hanya tipe data yang berdiri sendiri, atom, dan ditentukan pengguna , yang tidak ingin kita modifikasi.
Terkadang, saat Anda membangun hierarki kelas, Anda mungkin ingin menutup cabang tertentu dalam rantai warisan, berdasarkan model domain atau aturan bisnis Anda.
Misalnya, a Managerdan PartTimeEmployeekeduanya Employees, tetapi Anda tidak memiliki peran apa pun setelah karyawan paruh waktu di organisasi Anda. Dalam kasus ini, Anda mungkin ingin menyegel PartTimeEmployeeuntuk mencegah percabangan lebih lanjut. Di sisi lain, jika Anda memiliki karyawan paruh waktu per jam atau mingguan, mungkin masuk akal untuk mewarisi mereka PartTimeEmployee.