Yükleniyor...

Sınıf kalıtımı

TeaOrder, Order sınıfının ortak işini devralır; çay siparişine özgü extra ayrıntısını bunun üzerine ekler.

Çerezden nesneye

Önceki sayfanın satırı theme / dark idi. Bu derste tarayıcıya metin yazmak yerine bellekte nesne üretiyoruz.

Ebeveynin ortak görevi

Order, drink ve size alır. label metodu bütün siparişlerin kullanabileceği iki parçalı metni kurar.

Parent order

javascript
class Order {
constructor(drink, size) {
this.drink = drink;
this.size = size;
}
label() {
return this.drink + " / " + this.size;
}
}
const order = new Order("tea", "regular");
console.log(order.label());

Konsolda tea / regular görülür. order instanceof Order doğrudur; metot her nesneye kopyalanmaz, prototype üzerinde paylaşılır.

Çocuk önce temeli kurar

extends Order kalıtımı tanımlar. Çocuk constructor kendi alanına geçmeden önce ebeveyn bölümünü hazırlar.

Child order

javascript
class Order {
constructor(drink, size) {
this.drink = drink;
this.size = size;
}
label() {
return this.drink + " / " + this.size;
}
}
class TeaOrder extends Order {
constructor(drink, size, extra) {
super(drink, size);
this.extra = extra;
}
}
const tea = new TeaOrder("tea", "regular", "mint");
console.log(tea.drink);
console.log(tea.extra);

tea, ardından mint yazılır. super çağrısından önce this.extra kullanmak ReferenceError üretir.

Kopyalamadan değiştirmek

TeaOrder, label metodunu geçersiz kılabilir. super.label() içecek ve boyut kısmını hazır verir.

Full tea label

javascript
class Order {
constructor(drink, size) {
this.drink = drink;
this.size = size;
}
label() {
return this.drink + " / " + this.size;
}
}
class TeaOrder extends Order {
constructor(drink, size, extra) {
super(drink, size);
this.extra = extra;
}
label() {
return super.label() + " / " + this.extra;
}
}
console.log(new TeaOrder("tea", "regular", "mint").label());

Sonuç tea / regular / mint olur. Bu nesne hem instanceof TeaOrder hem de instanceof Order sayılır.

Küçük bir aile

Order her siparişin ihtiyacını taşır; TeaOrder yalnızca çaya ait bilgiyi ekler. Sadece adı değiştirmek için çocuk sınıf açmayın.

Sayfadaki satır

Örnek TeaOrder oluşturur ve geçersiz kılınmış etiketi belgeye yazar.

Page demo — inherited order

html
<!DOCTYPE html>
<html>
<body>
<p id="line">…</p>
<script>
class Order {
constructor(drink, size) {
this.drink = drink;
this.size = size;
}
label() {
return this.drink + " / " + this.size;
}
}
class TeaOrder extends Order {
constructor(drink, size, extra) {
super(drink, size);
this.extra = extra;
}
label() {
return super.label() + " / " + this.extra;
}
}
document.querySelector("#line").textContent =
new TeaOrder("tea", "regular", "mint").label();
</script>
</body>
</html>

Sayfada tea / regular / mint vardır. theme / dark çerez örneğindendi; tea / regular ise ebeveynin satırıydı.

Akışı deneyin

Önce Order, sonra mint ile TeaOrder kurun. this.extra öncesine super koyun ve super.label() sonucunu genişletin.

Sık hatalar

super öncesinde this kullanmayın, ebeveyn etiketini baştan yazmayın ve çocuğun hâlâ Order olduğunu unutmayın.

Özet

extends sınıfları bağlar; super(...) ebeveyn kısmını kurar; override yalnızca kendi ayrıntısını ekler.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör

❓
5
Sorular
🎯
70%
Geçmek İçin
♾️
∞
Süre
🔄
∞
Deneme

📝 Talimatlar

  • Her soruyu dikkatle okuyun
  • Her soru için en iyi cevabı seçin
  • Quiz'i istediğiniz kadar tekrar alabilirsiniz
  • İlerlemeniz üstte gösterilecek