Bir sınıfın miras vermesini ya da başka bir sınıf tarafından miras alınmasını engelleyen bir keyword’tür.
sealed class A
{
}
A sınıfı kalıtımsal ilişkiye tabii tutulmaz!..
Sadece sınıflarda ve sadece ‘override’ edilmiş metotlarda kullanılabilir.
class A
{
public virtual void X()
{
Console.WriteLine("Merhaba A");
}
}
class B : A
{
sealed public override void X()
{
Console.WriteLine("Merhaba B");
}
}
class C : B
{
public override void X()
{
Console.WriteLine("Merhaba C");
}
}
A da virtula olan member ın B de override edilmesinde sıkıntı yok ama C de override edilmesini istemiyoruz. B den sonraki sınıflarda override edilmesini istemiyorum.
İstemiyorsak sealed keyword’ü ile işaretleriz.
- Sınıfların davranışları kontrol edilmek istendiğinde
- Performans iyileştirmesi
- Singleton Design Pattern ( bir sınıfın uygulama çapında tekil bir instance’ının olması amaçlanır)
*Java da ki final keywordü*