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.
extendsanahtar 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.
withanahtar 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
}