3. Xavfsiz kirishni tashkil qilish.
Yuqorida aytib o'tilganidek, asosiy sinfning ochiq a'zosiga natijaviy sinfga ruxsat berilmaydi. Bundan kelib chiqadiki, asosiy sinfning ayrim a'zolariga natijaviy sinfidan kirish uchun ushbu a'zo ochiq bo'lishi kerak. Agar sinf a'zosini ochiq qoldirilsa, u butun kod uchun mavjud bo'ladi va bu har doim ham to`g`ri emas. Bu taxmin faqat qisman to'g'ri, chunki C# tilida sinfning himoyalangan a'zosini yaratishga ruxsat beriladi. Himoyalangan a'zo sinflarning ierarxiyasida ochiq, ammo bu ierarxiyadan tashqarida yopiq hisoblanadi.
Himoyalangan a'zo protected modifikatori yordamida yaratiladi. Agar sinf a'zosi protected deb e'lon qilingan bo'lsa, u yopiq bo'ladi, lekin himoyalangan a'zo meros qilib olingan holat bundan mustasno. Bunday holda, asosiy sinfning himoyalangan a'zosi natijaviy sinfining himoyalangan a'zolariga aylanadi va shuning uchun natijaviy sinfda unga kirish mumkin. Shunday qilib, proteted kirish modifikatoridan foydalanib, sinf uchun yopiq bo'lgan, ammo merosxo`r va natijaviy sinf uchun mavjud bo'lgan sinf a'zolarini yaratishingiz mumkin.
Quyida protected modifikatoridan foydalanishning oddiy misoli keltirilgan.
// Himoyalangan kirish modifikatoridan foydalanish.
using System;
class В {
protected int i, j; // B sinf uchun yopiq a'zolar
// lekin D sinf uchun mavjud
public void Set(int a, int b) {
i = a;
j = b;
}
public void Show() {
Console.WriteLine (i + " " + j);
}
}
class D : В {
int k; // yopiq a'zo
// B sinfining i va j a'zolari D sinfi uchun mavjud
Do'stlaringiz bilan baham: |