extends
- Dart kursu
- Orta seviye
- Ders 7/116
- 5 dk
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
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
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
class Dog ____ Animal {
Dog();
}
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 |