Sobes.tech
Middle

Soyut sınıf ile karışım (mixin) arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Soyut sınıf:

  • Hem normal hem de soyut yöntemler ve alanlar içerebilir.
  • Doğrudan soyut bir sınıfın örneği oluşturulamaz.
  • Yapıcılar içerebilir.
  • extends anahtar kelimesiyle kalıtım alınır. Tekli kalıtımı destekler.
  • Alt sınıflar için ortak davranış ve yapı tanımlamak için kullanılır.

Mix-in:

  • Yöntemler ve alanlar içerebilir, ancak yapıcılar tanımlayamaz.
  • Örnek oluşturmak için tasarlanmamıştır.
  • Kalıtım hiyerarşisine uymayan sınıflara işlevsellik eklemek için kullanılır.
  • with anahtar kelimesiyle bir sınıfla birleştirilir. Bir sınıf birden fazla mix-in kullanabilir.
Özellik Soyut sınıf Mix-in
Örnek Doğrudan oluşturulamaz Oluşturulamaz
Yapıcılar İçerebilir İçeremez
Kalıtım extends (sadece) with (çoklu)
Temel amaç Hiyerarşi tanımlama Davranış ekleme

Soyut sınıf kullanım örneği:

abstract class LivingBeing {
  void breathe(); // Soyut yöntem

  void grow() { // Normal yöntem
    print('Büyüme...');
  }
}

class Human extends LivingBeing {
  @override
  void breathe() {
    print('Akciğerlerle nefes alıyor');
  }
}

Mix-in kullanım örneği:

mixin Walkable {
  void walk() {
    print('Yürüyüş...');
  }
}

mixin Swimmable {
  void swim() {
    print('Yüzme...');
  }
}

class Dog with Walkable, Swimmable {
  // Dog sınıfı artık walk() ve swim() metodlarına sahip
}