Kalıtılan Metotları Geçersiz Kılma
Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 36 / 56.
Metot geçersiz kılma (method overriding), bir alt sınıfın, bir üst sınıftan miras aldığı bir metodun kendi uygulamasını sağlamasıdır. Alt sınıfın sürümü, üst sınıfın sürümünü "geçersiz kılar" (yerine geçer).
Basit Örnek:
Bir metodu olan bir ebeveyn sınıf oluşturun:
class Vehicle {
start() {
return "Vehicle starting...";
}
}Ebeveyn sınıfı genişleten bir alt sınıf oluşturun:
class Car extends Vehicle {
// Bu, Vehicle'ın start() metodunu geçersiz kılar (OVERRIDE eder)
start() {
return "Car engine roaring to life!";
}
}Sınıfları kullanın:
const vehicle = new Vehicle();
const car = new Car();
console.log(vehicle.start()); // "Vehicle starting..." (orijinal)
console.log(car.start()); // "Car engine roaring to life!" (geçersiz kılınmış)Geçersiz Kılma (Overriding) için Temel Kurallar:
- Ebeveyn ile aynı metot ismi
- Aynı veya uyumlu parametreler
- Alt nesneler üzerinde Child'ın versiyonu çağrılır
- Özel anahtar kelime gerekmez - sadece metodu tanımlayın
Görev
Size bir Shape üst sınıfı ve bir Circle alt sınıfı verilmiştir. Üst sınıf, 0 döndüren bir calculateArea() metoduna sahiptir.
Göreviniz, bir dairenin gerçek alanını hesaplamak için Circle sınıfındaki calculateArea() metodunu geçersiz kılmaktır (override).
Daire alanı formülü şudur: π × yarıçap²
JavaScript'te: Math.PI * this.radius * this.radius
Kopya kağıdı
Metot geçersiz kılma (method overriding), bir alt sınıfın (child class), bir üst sınıftan (parent class) miras aldığı bir metodun kendi uygulamasını sağlamasıyla gerçekleşir. Alt sınıfın sürümü, üst sınıfın sürümünün yerini alır.
Örnek:
class Vehicle {
start() {
return "Vehicle starting...";
}
}
class Car extends Vehicle {
// Vehicle'ın start() metodunu geçersiz kılar (override eder)
start() {
return "Car engine roaring to life!";
}
}
const vehicle = new Vehicle();
const car = new Car();
console.log(vehicle.start()); // "Vehicle starting..."
console.log(car.start()); // "Car engine roaring to life!"Temel Kurallar:
- Üst sınıfla aynı metot adını kullanın
- Aynı veya uyumlu parametreleri kullanın
- Alt sınıf nesnelerinde alt sınıfın sürümü çağrılır
- Özel bir anahtar kelime gerekmez - metodu alt sınıfta tanımlamanız yeterlidir
Kendin dene
import { Shape } from './shapes.js';
import { Circle } from './shapes.js';
// Uygulamanızı test edin
const myCircle = new Circle(5);
console.log(myCircle.calculateArea());
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ı10Çok Biçimlilik
Çok Biçimlilik Nedir?Kalıtılan Metotları Geçersiz Kılmasuper KullanımıÖ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