Türemiş Sınıflarda Erişim Kuralları

Taban sınıfın elemanları, türemiş sınıfın elemanları gibi işlem görmektedir fakat türemiş sınıfın taban sınıfa erişimi biraz kısıtlanmıştır.

1. Türemiş sınıf türünden bir referansla dışarıdan türemiş sınıfın ve taban sınıfın yalnızca “public” kısmına erişilebilir.
2. Türemiş sınıfın içerisinde türemiş sınıfın her bölümüne erişebiliriz fakat taban sınıfın yalnızca “public” ve “protected” bölümlerine erişebiliriz. “Private” bölümüne erişemeyiz.


Protected Bölümünün Anlamı

“Protected” bölüm sınıfın kendisinin erişebildiği, türemiş sınıfın erişebildiği bölümdür. “Protected” bölüme dışarıdan erişilemez. Bu durumda sınıfın en korunmuş bölümü “private” bölümdür. En az korunmuş bölümü “public” bölümdür. “Protected” bölüm koruma düzeyi bakımından ikisinin arasındadır.

Peki neleri “protected” bölüme yerleştirmeliyiz?
Yanıt basit: Dışarıyı ilgilendirmeyen fakat türemiş sınıfı ilgilendiren elemanları yerleştirmeliyiz.

Biz daha bir sınıfı yazarken ondan türetme yapılıp yapılmayacağını göz önüne almalıyız. Yani sınıfımızdan bir türetme yapılabileceğini düşünmeliyiz ve türemiş sınıfı yazanların işini kolaylaştırmak için gerekli elemanları “protected” bölüme yerleştirmeliyiz.

Şüphesiz türetme olmasaydı “protected” bölümün “private” bölümden bir farkı olmazdı.

“Protected” erişim yukarıya doğru tüm taban sınıfları kapsamaktadır. Yani örneğin “C” “B” den, “B” de “A” dan türetilmiş olsun, “C” sınıfı yalnızca “B” nin değil “A” nın da elemanlarına erişebilir.

Anımsanacağı gibi “internal” aynı assembly’ de “public” etkisi yaratan, farklı bir assembly’ de private etkisi yaratan bölümdür. “Protected internal” aynı assembly’ de public etkisi yaratan, başka bir assembly’ de protected etkisi yaratan bölümdür.

Kaynak:Kaan Aslan Hocanın Dersinde Tuttuğum Ders Notlarıdır.

Leave a Reply

Site Footer