super() Metodu
Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 27 / 56.
super() metodu, üst sınıfın constructor'ını kullanarak nesneyi oluşturur ve başlatır. Alt sınıfa herhangi bir özellik eklemeden önce çağrılmalıdır.
Şöyle düşünün: üst sınıf nesnenin temelini oluşturur ve super(), alt sınıf kendi özelliklerini eklemeden önce "önce o temeli oluştur" der.
Örneğe bir göz atalım. Bir ebeveyn sınıf oluşturun:
class Employee {
constructor(name) {
this.name = name;
}
}Şimdi üst sınıfı genişleten bir alt sınıf oluşturun:
class Manager extends Employee {
constructor(name, department) {
super(name); // Üst sınıf yapıcısını name ile çağırın
this.department = department;
}
}Burada neler oluyor:
constructor(name, department)- Manager hem name hem de department'a ihtiyaç duyarsuper(name)-namebilgisini Employee'nin constructor'ına iletir
this.department- Manager'ın benzersiz özelliğini ayarlar
Bu, hem kalıtım yoluyla alınan özelliklere (name) hem de kendi özelliklerine (department) sahip bir Manager oluşturur!
Alt sınıfın bir örneğini oluşturun:
const myManager = new Manager("Sarah", "Engineering");
console.log(myManager.name); // "Sarah"
console.log(myManager.department); // "Engineering"Türetilmiş bir sınıfın constructor'ında this kullanmadan önce super() metodu çağrılmalıdır. Eğer super() çağırmazsanız, JavaScript bir referans hatası fırlatacaktır.
Görev
Meal sınıfını genişleten bir Salad sınıfı verilmiştir. Salad hem bir name hem de ingredients özelliğine sahip olmalıdır.
Göreviniz, Salad sınıfı constructor'ını aşağıdakileri yaparak tamamlamaktır:
nameözelliği ilesuper()fonksiyonunu çağırmakingredientsözelliğini atamak
Kopya kağıdı
super() yöntemi, üst sınıfın yapıcısını (constructor) kullanarak nesneyi oluşturur ve başlatır. Alt sınıfa herhangi bir özellik eklemeden önce çağrılması gerekir.
Bir alt sınıfta super() kullanımına örnek:
class Employee {
constructor(name) {
this.name = name;
}
}
class Manager extends Employee {
constructor(name, department) {
super(name); // Önce üst sınıf yapıcısını çağır
this.department = department; // Sonra alt sınıf özelliklerini ekle
}
}
const myManager = new Manager("Sarah", "Engineering");
console.log(myManager.name); // "Sarah"
console.log(myManager.department); // "Engineering"Önemli noktalar:
- Alt sınıf yapıcısında
thiskullanılmadan öncesuper()çağrılmalıdır - Gerekli argümanları alt sınıftan üst sınıf yapıcısına aktarın
super()çağrılmazsa JavaScript bir referans hatası (reference error) fırlatacaktır
Kendin dene
import { Meal } from './classes.js';
import { Salad } from './classes.js';
// Test kodu - değiştirmeyin
const salad = new Salad("Caesar", ["lettuce", "croutons", "cheese"]);
console.log(salad.name); // "Caesar" çıktısını vermeli
console.log(salad.ingredients); // ["lettuce", "croutons", "cheese"] çıktısını vermeliBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Yönelimli Programlama bölümündeki tüm dersler
1Nesneler ve this Anahtar Kelimesi
Hızlı Tekrar: NesnelerNesnelere Metot Eklemethis Anahtar Kelimesini AnlamakYapıcı Fonksiyonlarnew Anahtar KelimesiGenel Tekrar Uygulaması7Kalıtım ve extends Anahtar Kelimesi
Kalıtım"is-a" İlişkisiextends Anahtar Kelimesisuper() MetoduÖzellikleri ve Metotları DevralmaÖzet Meydan Okuması2Kodu Düzenleme
Modüller Nedir?export ile Dışa Aktarmaimport ile İçe AktarmaVarsayılan ve Adlandırılmış Dışa Aktarmalar8OOP Kodunu Düzenleme
Sınıfları Modüller Halinde Düzenleme6Proje: Basit Bir Banka Hesabı
BankAccount SınıfıPara Yatırma ve Para Çekme9Statik Metotlar ve Özellikler
Sınıf Düzeyi ve Örnek DüzeyiStatik ÖzelliklerStatik Yardımcı MetotlarÖzet Meydan Okuma12Getter ve Setter'lar
get ve set Anahtar KelimeleriHesaplanmış ÖzelliklerDoğrulama ve Yan EtkilerÖzet Meydan Okuması15Final Meydan Okumaları
Oyun Karakteri OluşturucuE-ticaret Ürün SistemiÜniversite Yönetim SistemiAkıllı Ev Cihaz Sistemi