Sobes.tech
Middle

Abstrakt sinif və mixin arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Məcmuə sinfi:

  • Adi və ya abstrakt metodlar və sahələr ola bilər.
  • Birbaşa məcmuə sinfinin nümunəsini yaratmaq mümkün deyil.
  • Quruculara sahib ola bilər.
  • extends açar sözü ilə irsi alınır. Yalnız bir irsi dəstəkləyir.
  • Alt siniflər üçün ümumi davranış və struktur müəyyən etmək üçün istifadə olunur.

Məcmuə:

  • Metodlar və sahələr ola bilər, amma qurucuları təyin edə bilməz.
  • Nümunə yaratmaq üçün nəzərdə tutulmayıb.
  • İrsi hierarhiyaya uyğun olmayan sinflərə funksionallıq əlavə etmək üçün istifadə olunur.
  • with açar sözü ilə siniflə birləşdirilir. Bir sinif bir neçə məcmuədən istifadə edə bilər.
Xüsusiyyət Məcmuə sinfi Məcmuə
Nümunə Birbaşa yaradıla bilməz Yaradıla bilməz
Qurucu Ola bilər Ola bilməz
İrsi extends (yalnız) with (çoxlu)
Əsas məqsəd Hierarxiyanı təyin etmək Davranışı əlavə etmək

Məcmuə sinfinin istifadəsi nümunəsi:

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

  void grow() { // Normal metod
    print('Böyümək...');
  }
}

class Human extends LivingBeing {
  @override
  void breathe() {
    print('Ağciyərlə nəfəs alma');
  }
}

Məcmuə nümunəsi:

mixin Walkable {
  void walk() {
    print('Yürümək...');
  }
}

mixin Swimmable {
  void swim() {
    print('Üzmək...');
  }
}

class Dog with Walkable, Swimmable {
  // Dog sinfi indi walk() və swim() metodlarına malikdir
}