extends ve super
Bir sınıfı extends ile türetmeyi ve super ile üst sınıfı çağırmayı öğrenirsin.
extends ile türetme
Bir sınıfı başka bir sınıftan türetmek için extends anahtar kelimesini kullanırsın. Türetilen sınıfa alt sınıf (subclass), türetildiği sınıfa üst sınıf denir.
class Animal {
constructor(name) { this.name = name; }
}
class Dog extends Animal {}Dog sınıfı Animal'ın tüm üyelerini miras alır; kendi ek üyelerini de tanımlayabilir.
super çağrısı
Bir alt sınıfın yapıcısında this kullanmadan önce üst sınıfın yapıcısını super(...) ile çağırman gerekir. Bu, üst sınıfın başlatma işini yapmasını sağlar.
class Dog extends Animal {
constructor(name, breed) {
super(name);
this.breed = breed;
}
}Burada super(name) üst sınıfın constructor'ını çalıştırır; sonra this.breed eklenebilir.
Uygulama Dog alt sınıfı
Aşağıdaki Animal sınıfı verildi. Dog adlı alt sınıfı extends ile tanımla. Yapıcısı name parametresini alıp super(name) çağırsın ve this.sound özelliğine "Hav" atansın.
Örnek çözümü göster
Yapıcı içinde önce super(name), sonra this.sound = "Hav" yaz.
Örnek çözüm:
class Dog extends Animal {
constructor(name) {
super(name);
this.sound = "Hav";
}
}
Kendini test et
-
Alt sınıf yapıcısında `this` kullanmadan önce ne çağrılmalıdır?
constructor() { /* ... */ }- this()
- new Animal()
- super()
- extends
Cevabı göster
super() — Doğru! super() üst sınıf yapıcısını çalıştırır.
-
Sınıfı türet
class Dog ____ Animal {}Cevabı göster
class Dog extends Animal {} -
Kavramları eşleştir
- extends
- alt sınıf bildirimi
- super()
- üst sınıf yapıcı çağrısı
- super.metot()
- üst sınıf yöntem çağrısı
- subclass
- türetilmiş sınıf