C# vorislik
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);
}
}
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!
