C# Sealed Sınıflar (Mühürlü Sınıflar) Nedir?
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ıfların Temel Özellikleri
- Bir
sealed
sınıf başka bir sınıftan türetilebilir ancak kendisi başka bir sınıf tarafından türetilemez. - Kod güvenliğini sağlamak ve istenmeyen kalıtımı önlemek için kullanılır.
sealed
yalnızca sınıflarda değil, metotlarda da kullanılabilir.
Sealed Sınıf Tanımlama
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 { }
Sealed Sınıf Kullanımı
class Program { static void Main(string[] args) { FinalClass obj = new FinalClass(); obj.Display(); } }
Programın Çıktısı
Bu sınıf başka bir sınıf tarafından miras alınamaz.
Sealed Metotlar
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ın Kullanım Alanları
- Güvenlik: Başka sınıfların bir sınıfın yapısını değiştirmesini önlemek için.
- Performans: Derleyici, sealed sınıfların daha optimize çalışmasını sağlar.
- Kod Kontrolü: Miras alınmasını istemediğiniz özel sınıfları korumak için.
Sonuç
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.