Menu
Coddy logo textTech

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:

  1. Ebeveyn ile aynı metot ismi
  1. Aynı veya uyumlu parametreler
  1. Alt nesneler üzerinde Child'ın versiyonu çağrılır
  1. Özel anahtar kelime gerekmez - sadece metodu tanımlayın
challenge icon

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());
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