Menu
Coddy logo textTech

super() Metodu

Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 27 / 56.

super() yöntemi, üst sınıfın oluşturucusunu kullanarak nesneyi oluşturur ve başlatır. Alt sınıfa herhangi bir özellik ekleyebilmeniz için ö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 olanlar:

  1. constructor(name, department) - Manager'ın hem ada hem de departmana ihtiyacı vardır
  2. super(name) - name'i Employee'ın constructor'ına geçirir
  1. this.department - Manager'ın benzersiz özelliğini ayarlar

Bu, hem devralınan özelliklere (name) hem de kendi özelliğine (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 oluşturucusunda this kullanmadan önce super() yöntemi çağrılmalıdır. super() çağrılmazsa JavaScript bir başvuru hatası verir.

challenge icon

Görev

Meal sınıfını genişleten bir Salad sınıfı veriliyor. Salad hem bir ada hem de malzemelere sahip olmalıdır.

Göreviniz, Salad sınıfının yapıcısını şu işlemleri gerçekleştirerek tamamlamaktır:

  1. name özelliğiyle super() çağrısını yapmak
  2. ingredients özelliğini ayarlamak

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ı vermeli
quiz iconKendini test et

Bu 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

Kendi başına pratik yap: Online JavaScript derleyicisi