C# Dersleri 81 - Sealed Sınıflar


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.