Sealed (Mühürlü) sınıflar, başka bir sınıf tarafından türetilemeyen (miras alınamayan) sınıflardır. sealed anahtar kelimesi, sınıfın başka bir sınıf tarafından kalıtım yoluyla genişletilmesini engellemek için kullanılır.
sealed sınıf başka bir sınıftan türetilebilir ancak kendisi başka bir sınıf tarafından türetilemez.sealed yalnızca sınıflarda değil, metotlarda da kullanılabilir.Bir sınıfı sealed olarak tanımlamak için sealed anahtar kelimesi kullanılır:
sealed class FinalClass
{
public void Display()
{
Console.WriteLine("Bu sınıf başka bir sınıf tarafından miras alınamaz.");
}
}
// Hata! Sealed sınıflar başka sınıflar tarafından türetilemez
// class DerivedClass : FinalClass { }
class Program
{
static void Main(string[] args)
{
FinalClass obj = new FinalClass();
obj.Display();
}
}
Bu sınıf başka bir sınıf tarafından miras alınamaz.
Bir sınıftaki metot, sealed anahtar kelimesi ile mühürlenerek alt sınıflar tarafından geçersiz kılınamaz (override edilemez). Ancak, sealed metotlar yalnızca override edilmiş metotlar üzerinde kullanılabilir.
class BaseClass
{
public virtual void ShowMessage()
{
Console.WriteLine("BaseClass: Mesaj gösteriliyor.");
}
}
class DerivedClass : BaseClass
{
public sealed override void ShowMessage()
{
Console.WriteLine("DerivedClass: Mesaj gösteriliyor.");
}
}
// Hata! Sealed metodunu geçersiz kılamazsınız
// class AnotherDerivedClass : DerivedClass
// {
// public override void ShowMessage() { } // HATA!
// }
Sealed sınıflar, sınıfın başka sınıflar tarafından genişletilmesini engelleyerek, kod güvenliğini ve bütünlüğünü sağlar. Ayrıca, sealed metotlar kullanılarak belirli metotların alt sınıflar tarafından değiştirilmesi önlenebilir.