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.