C# vorislik


ULASHISH

Vorislik (hosila va asosiy sinf)

C# da maydonlar va metodlarni bir sinfdan boshqasiga meros qilib o‘tkazish mumkin. "Vorislik tushunchasi"ni ikki toifaga ajratamiz:

  • Hosila sinf (derived class) (farzand) — boshqa sinfdan meros oladigan sinf
  • Asosiy sinf (base class) (ota-ona) — meros olinadigan sinf

Sinfdan meros olish uchun : belgisidan foydalaning.

Quyidagi misolda Car sinfi (farzand) Vehicle sinfidan (ota-ona) maydon va metodlarni meros qilib oladi:

Misol

class Vehicle  // base class (parent) 
{
  public string brand = "Ford";  // Vehicle field
  public void honk()             // Vehicle method 
  {                    
    Console.WriteLine("Tuut, tuut!");
  }
}

class Car : Vehicle  // derived class (child)
{
  public string modelName = "Mustang";  // Car field
}

class Program
{
  static void Main(string[] args)
  {
    // Create a myCar object
    Car myCar = new Car();

    // Call the honk() method (From the Vehicle class) on the myCar object
    myCar.honk();

    // Display the value of the brand field (from the Vehicle class) and the value of the modelName from the Car class
    Console.WriteLine(myCar.brand + " " + myCar.modelName);
  }
}

Misolni ishga tushirish »

Nima uchun va qachon "vorislik"dan foydalanish kerak?

- Bu koddan qayta foydalanish uchun foydali: yangi sinf yaratganda mavjud sinfning maydonlari va metodlaridan qayta foydalaning.

Maslahat: Keyingi bob — Polimorfizm bilan ham tanishib chiqing: unda meros olingan metodlar turli vazifalarni bajarish uchun ishlatiladi.



sealed kalit so‘zi

Agar boshqa sinflar biror sinfdan meros olishini istamasangiz, sealed kalit so‘zidan foydalaning:

Agar sealed sinfga murojaat qilishga urinsangiz, C# xato hosil qiladi:

sealed class Vehicle 
{
  ...
}

class Car : Vehicle 
{
  ...
}

Xato xabari taxminan quyidagicha bo‘ladi:

'Car': cannot derive from sealed type 'Vehicle'



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!