Özellikleri ve Metotları Devralma
Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 28 / 56.
Bir sınıf başka bir sınıfı genişlettiğinde, üst sınıftaki tüm özellikleri ve yöntemleri miras alır. Bu, alt sınıfların üst sınıfta tanımlanan her şeye otomatik olarak erişebileceği anlamına gelir.
Özellikleri ve metotları olan bir ebeveyn sınıf oluşturalım:
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
eat() {
return `${this.name} is eating`;
}
sleep() {
return `${this.name} is sleeping`;
}
}Şimdi, Animal sınıfından miras alan bir alt sınıf oluşturalım:
class Dog extends Animal {
constructor(name, age, breed) {
super(name, age);
this.breed = breed;
}
}Dog sınıfından bir örnek oluşturun:
const rex = new Dog("Rex", 3, "German Shepherd");Şimdi, Dog sınıfında eat() ve sleep() metodlarını tanımlamamış olsak bile, bu metodları hala kullanabiliriz:
console.log(rex.eat()); // Çıktı: Rex is eating
console.log(rex.sleep()); // Çıktı: Rex is sleepingVe miras alınan tüm özelliklere erişebiliriz:
console.log(rex.name); // Çıktı: Rex
console.log(rex.age); // Çıktı: 3
console.log(rex.breed); // Çıktı: German ShepherdGörev
Dessert sınıfını genişleten bir Cake sınıfı oluşturun ve bunu dışa aktarın. Cake şunlara sahip olmalıdır:
- Dessert sınıfından miras alınan tüm özellikler ve yöntemler
- Yeni bir
flavorözelliği - “Added candles to ${this.name}!” dizesini döndüren yeni bir
addCandles()yöntemi
Kopya kağıdı
Alt sınıflar, extends anahtar kelimesini kullanarak tüm özellikleri ve metotları üst sınıflarından miras alır:
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
eat() {
return `${this.name} is eating`;
}
sleep() {
return `${this.name} is sleeping`;
}
}
class Dog extends Animal {
constructor(name, age, breed) {
super(name, age);
this.breed = breed;
}
}
const rex = new Dog("Rex", 3, "German Shepherd");
console.log(rex.eat()); // Rex is eating
console.log(rex.name); // Rex
console.log(rex.breed); // German ShepherdAlt sınıf, miras alınan tüm özelliklere ve metotlara, onları yeniden tanımlamaya gerek kalmadan erişebilir.
Kendin dene
import { Dessert } from './desserts.js';
import { Cake } from './desserts.js';
// Test kodu - değiştirmeyin
const myCake = new Cake("Birthday Cake", 300, "Chocolate");
console.log(myCake.describe()); // Çıktı "Birthday Cake has 300 calories" olmalı
console.log(myCake.flavor); // Çıktı "Chocolate" olmalı
console.log(myCake.addCandles()); // Çıktı "Added candles to Birthday Cake!" olmalı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
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