1-amaliy ish. Abstrakt sinflar yaratish va ishlatish. Oddiy darslarga qo'shimcha ravishda C# ning mavhum sinflari


Download 25.88 Kb.
bet2/4
Sana21.09.2023
Hajmi25.88 Kb.
#1683325
1   2   3   4
Abstrakt sinf a'zolari
Odatdagi xossalar va usullardan tashqari, mavhum sinf abstrakt kalit so'z yordamida aniqlangan va hech qanday funksionallikka ega bo'lmagan mavhum sinf a'zolariga ega bo'lishi mumkin. Xususan, mavhum bo'lishi mumkin:

  • Usullari

  • Xususiyatlari

  • Indeksatorlar

  • Voqealar

Abstrakt sinf a'zolari shaxsiy modifikatorga ega bo'lmasligi kerak. Bunday holda, olingan sinf asosiy abstrakt sinfdagi barcha mavhum usullar va xususiyatlarni bekor qilishi va amalga oshirishi kerak. Olingan sinfda bekor qilinganda, bunday usul yoki xususiyat bekor qilish modifikatori bilan ham e'lon qilinadi (virtual usullar va xususiyatlarning normal bekor qilinishi kabi). Shuni ham ta'kidlash kerakki, agar sinfda kamida bitta abstrakt usul (yoki mavhum xususiyat, indeksator, hodisa) bo'lsa, u holda bu sinf abstrakt sifatida belgilanishi kerak .
Mavhum a'zolar, virtual a'zolar kabi, polimorf interfeysning bir qismidir. Ammo virtual usullarda biz merosxo'r sinf amalga oshirishni meros qilib oladi desak, mavhum usullarda ushbu mavhum usullar bilan ifodalangan interfeys meros qilib olinadi.
Abstrakt usullar
Masalan, yuqoridagi avtomobil misolida Move usuli transport vositasining harakatini tasvirlaydi. Biroq, har xil turdagi transport vositalari har xil harakat qiladi - ular quruqlikda harakatlanadi, havoda uchadi, suvda suzadi va hokazo. Bunday holda, biz Move usulini mavhum qilishimiz va uni hosil qilingan sinflarga amalga oshirishni kechiktirishimiz mumkin:

abstract class Transport
{
public abstract void Move();
}
// класс корабля
class Ship : Transport
{
// мы должны реализовать все абстрактные методы и свойства базового класса
public override void Move()
{
Console.WriteLine("Корабль плывет");
}
}
// класс самолета
class Aircraft : Transport
{
public override void Move()
{
Console.WriteLine("Самолет летит");
}
}
// класс машины
class Car : Transport
{
public override void Move()
{
Console.WriteLine("Машина едет");
}
}

Ilova sinflari:

Transport car = new Car();
Transport ship = new Ship();
Transport aircraft = new Aircraft();
car.Move(); // машина едет
ship.Move(); // корабль плывет
aircraft.Move(); // самолет летит


Download 25.88 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling