Voris olish turlari
// public (umumiy) vorislik
class derived1: public Base{…};
// private (xususiy) vorislik
class derived2: private Base{….};
// protected (himoyalangan) vorislik
class derived3: protected Base{….};
// default (oddiy-xususiy) vorislik
class derived4: Base{….};
• Public vorislik:
• Bunda asos sinfning public a’zolari voris sinfning ham public a’zolari va asos sinfning protected a’zolari voris sinfning protected a’zolariga aylanadi.
• Lekin asos sinfning private a’zolari voris sinf uchun yopiqligicha qoladi.
• Protected vorislik:
• Bunda asos sinfning public va protected a’zolari voris sinf uchun protected a’zo bo’lib o’tadi.
• Private vorislik:
• Bunda asos sinfning public va protected a’zolari voris sinfning private a’zosiga ayanadi.
Hosil qilingan sinfdan tayanch sinf a'zolariga kirish.
Person va Employee sinflariga qaytamiz. Employee barcha funktsiyalarni Person sinfidan olgan bo'lsa-da, keling quyidagi holatda nima bo'lishini ko'rib chiqaylik:
class Employee : Person
{
public void Display()
{
Console.WriteLine(_name);
}
}
Ushbu kod ishlamaydi va xatoga yo'l qo'yadi, chunki _name o'zgaruvchisi private modifikatori bilan e'lon qilingan va shuning uchun unga faqat Person sinfi kirish huquqiga ega. Boshqa tomondan, Person sinfi biz foydalanishi mumkin bo'lgan Name umumiy mulkini belgilaydi, shuning uchun quyidagi kod biz uchun yaxshi ishlaydi:
class Employee : Person
{
public void Display()
{
Console.WriteLine(Name);
}
}
Shunday qilib, hosil bo'lgan sinf faqat private protected (agar baza va olingan sinf bir xil sinfdan meros olingan bo'lsa), public, internal (agar baza va olingan sinf bir xil sinfdan meros olingan bo'lsa), protected va protected internal modifikatorlari bilan aniqlangan asosiy sinf a'zolariga kira oladi.
Do'stlaringiz bilan baham: |