CodeBlanks Logo Icon CodeBlanks

extends

extends ile bir sınıftan miras almayı öğrenirsin.

extends

Dart'ta bir sınıf başka bir sınıftan miras almak için extends anahtar kelimesini kullanır. Miras alınan sınıfa üst sınıf (base class), miras alana alt sınıf (derived class) denir.

Örnek: class Dog extends Animal { ... }. Burada Dog sınıfı, Animal sınıfının tüm public üyelerini devralır. Alt sınıf, üst sınıfın metotlarını kendi üzerinde çağırabilir; yeni metot ve alanlar ekleyebilir. Dart tekli miras alır: her sınıf yalnızca bir sınıfı extends eder. Birden fazla davranışı birleştirmek için mixin kullanılır; onu ileride göreceğiz.

Miras alınan metotlar

Alt sınıf, üst sınıfın metotlarını yeniden tanımlamadan kullanabilir. Çağrı, kendi örneği üzerinden yapılır; üst sınıfa otomatik olarak yönlendirilir.

Örnek: Animal sınıfında void breathe() { print('Nefes alıyor'); } metodu olsun. Dog extends Animal yazınca Dog örnekleri breathe() metodunu doğrudan çağırabilir: Dog().breathe(). Alt sınıfa ek bir şey yazmaya gerek yoktur. Bu davranış, kod tekrarını azaltır; ortak davranış üst sınıfta toplanır, alt sınıflar onu paylaşır.

Uygulama Dog sınıfını extends ile tanımla

Var olan Animal sınıfını koru. Dog adında, Animal'dan miras alan bir sınıf tanımla; Dog(); yapıcısını ekle. main içinde var d = Dog(); ile örnek oluştur ve d.breathe() çağrısı yap.

Başlangıç kodu

main.dart
class Animal {
  void breathe() {
    print('Nefes alıyor');
  }
}

// Dog sınıfını Animal'dan miras alacak biçimde tanımla

void main() {
  // Dog() örneği oluştur ve breathe() çağır
}

Örnek çözüm

main.dart
class Animal {
  void breathe() {
    print('Nefes alıyor');
  }
}

class Dog extends Animal {
  Dog();
}

void main() {
  var d = Dog();
  d.breathe();
}

Beklenen çıktı

Nefes alıyor

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hangisi geçerli bir extends bildirimidir?

  • class Dog inherits Animal { }
  • class Dog implements Animal { }
  • class Dog extends Animal { } Doğru cevap
  • class Dog : Animal { }

Açıklama: extends, Dart'ta miras alma için kullanılan anahtar kelimedir.

2 extends anahtarını ekle

Soru
class Dog ____ Animal {
  Dog();
}
Cevap
class Dog extends Animal {
  Dog();
}

Açıklama: extends, alt sınıfın üst sınıftan miras almasını sağlar.

3 Miras parçalarını eşle

Kavram Anlamı
Animal Üst sınıf
Dog Alt sınıf
breathe Miras alınan metot

Orta seviye bölümündeki tüm dersler