Kalıtımı önlemek için sealed kullanmak [15]

csharp blogsahin
Kalıtım her ne kadar güçlü ve kullanışlı olsa da kimi zaman bunu önlemek isteyeceksiniz. Örneğin, özelleştirilmiş bir donanım aygıtının, söz gelişi bir tıbbi monitörün ilk kullanıma hazırlanması ile ilgili adımları bir araya getiren bir sınıfınız olabilir. Böyle bir durumda, sınıfınızı kullanan kullanızıların monitörün ilk kullanıma hazırlanma şeklini değiştirebilmelerini istemezsiniz. Bu, aygıtın büyük olasılıkla hatalı olarak hazırlanmasına neden lacaktr. Sebep ne olursa olsub C#'ta sealed anahtar kelimesi kullanılarak bir sınıfın kalıtım yoluyla aktarılması kolaylıkla önlenebilir.
Bir sınıfın kalıtım yoluyla aktarılması önlemek için söz konusu sınıfın deklarasyonunun önüne sealed anahtar kelimesini yerleştirmelisiniz. Bir sınıfı hem abstract hem de sealed olarak deklare etmek kurallara aykırıdır. Çünkü özet sınıf kendi başına tam değildir, tam olarak uygulanabilmek için kendisinden türetilen sınıflara güvenir. İşte, bir sealed sınıf örneği:

sealed class A {

//.........

}

//Asagidaki sinif kurallara aykiridir.
class B : A { //HATA! A sinifindan bir sinif turetemezsiniz.

//..........

}

A sealed olarak deklare edildiği için böyle bu kullanım yapamayız.

Kaynak: Herberth Schildt
Herkes İçin C#

Hiç yorum yok:

Yorum Gönder