Sobes.tech
Middle

Abstrakt sinf va mixin o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Abstrakt sinf:

  • Odda od normal va abstrakt metodlar va maydonlar.
  • To'g'ridan-to'g'ri abstrakt sinfning nusxasini yaratish mumkin emas.
  • Konstruktorlarni o'z ichiga olishi mumkin.
  • extends kalit so'zi yordamida meros oladi. Yagona merosni qo'llab-quvvatlaydi.
  • Subklasslar uchun umumiy xulq-atvor va tuzilmani belgilash uchun ishlatiladi.

Mixin:

  • Metodlar va maydonlarni o'z ichiga olishi mumkin, lekin konstruktorlarni belgilay olmaydi.
  • Nusxa olish uchun mo'ljallanmagan.
  • Meros olish hierarhiyasiga mos kelmaydigan sinflarga funksionallik qo'shish uchun ishlatiladi.
  • with kalit so'zi yordamida sinf bilan birlashtiriladi. Bir sinf bir nechta mixinlardan foydalanishi mumkin.
Xususiyat Abstrakt sinf Mixin
Nusxa olish To'g'ridan-to'g'ri yaratib bo'lmaydi Yaratib bo'lmaydi
Konstruktorlar Bo'lishi mumkin Bo'lishi mumkin emas
Meros olish extends (bir marta) with (ko'p marta)
Asosiy maqsad Hierarxiyani belgilash Xulq-atvor qo'shish

Abstrakt sinfdan foydalanish misoli:

abstract class LivingBeing {
  void breathe(); // Abstrakt metod

  void grow() { // Oddiy metod
    print('O'sib borayotgan...');
  }
}

class Human extends LivingBeing {
  @override
  void breathe() {
    print('O'pka bilan nafas olish');
  }
}

Mixindan foydalanish misoli:

mixin Walkable {
  void walk() {
    print('Yurish...');
  }
}

mixin Swimmable {
  void swim() {
    print('Suzish...');
  }
}

class Dog with Walkable, Swimmable {
  // Dog sinfi endi walk() va swim() metodlariga ega
}