Darsliklar Dart Abstrakt sinf

Dart Dart Abstrakt sinf

Abstrakt sinf — bevosita obyekt yaratib bo’lmaydigan, faqat boshqa sinflar uchun andoza (shablon) vazifasini bajaradigan sinf. U umumiy tuzilmani belgilaydi, ammo ba’zi metodlarni bola sinflar to’ldirishi shart. Abstrakt sinflar — OOP dizaynining muhim vositasidir.

Abstrakt sinfabstract kalit so’zi bilan e’lon qilinadigan, obyekt yaratib bo’lmaydigan sinf. U tanasiz (abstrakt) metodlarni o’z ichiga olishi mumkin.

Abstrakt sinf e’lon qilish

Abstrakt sinf abstract bilan e’lon qilinadi. U tanasiz metod — faqat “shakl”ni belgilaydi:

abstract class Hayvon {
  void ovoz();   // tanasiz (abstrakt) metod
}

class Mushuk extends Hayvon {
  @override
  void ovoz() {
    print("Miyov");
  }
}

void main() {
  var m = Mushuk();
  m.ovoz();
}
Miyov

abstract class Hayvon — abstrakt sinf, void ovoz(); — tanasiz metod (faqat e’lon). Mushuk undan meros olib, ovoz ni to’ldirishi shart. Bu majburiylik abstrakt sinfning kuchidir.

Nega obyekt yaratib bo’lmaydi?

Abstrakt sinfdan bevosita obyekt yaratib bo’lmaydi — u faqat andoza:

abstract class Hayvon {
  void ovoz();
}

void main() {
  // var h = Hayvon();   // XATO: abstrakt sinfdan obyekt yaratib bo'lmaydi
  print("Abstrakt sinf faqat andoza");
}
Abstrakt sinf faqat andoza

Hayvon() deb yozib bo’lmaydi, chunki “hayvon” umumiy tushuncha — aniq mushuk yoki it bo’lishi kerak. Abstrakt sinf shu mantiqni kod bilan ifodalaydi.

Abstrakt va oddiy metod birga

Abstrakt sinf ham tanasiz (abstrakt), ham to’liq (oddiy) metodlarni o’z ichiga olishi mumkin:

abstract class Shakl {
  void chiz();              // abstrakt — bola to'ldiradi
  void tavsif() {           // oddiy — tayyor
    print("Bu bir shakl");
  }
}

class Doira extends Shakl {
  @override
  void chiz() {
    print("Doira chizildi");
  }
}

void main() {
  var d = Doira();
  d.chiz();
  d.tavsif();
}
Doira chizildi
Bu bir shakl

chiz() — abstrakt (bola to’ldirdi), tavsif() — tayyor metod (meros olindi). Abstrakt sinf umumiy xatti-harakatni berib, farqli qismini bolaga qoldiradi.

Qachon ishlatiladi?

Abstrakt sinflar bir necha sinf uchun umumiy “shartnoma” (interfeys) kerak bo’lganda ishlatiladi. Masalan, barcha “shakllar” chiz() metodiga ega bo’lishi kerak, ammo har biri o’zicha chizadi. Abstrakt sinf bu qoidani majburlaydi va kodni tuzilmali qiladi. Bu — katta loyihalarni loyihalashning muhim vositasidir.

Xulosa

Bu bo’limda abstrakt sinf (abstract), tanasiz metodlar, obyekt yaratib bo’lmasligi va abstrakt/oddiy metodlarni birga ishlatishni ko’rib chiqdik. Abstrakt sinflar umumiy andoza va majburiyat beradi. Keyingi darsda vorislikka o’tamiz.