CodeBlanks Logo Icon CodeBlanks

protected

protected ile alt sınıf erişimini öğrenirsin.

protected nedir?

protected, bir üyenin sınıfın kendisi ve alt sınıfları (extends ile türeyen) içinde erişilebilir olduğunu belirtir. private gibi dışarıdan kapalıdır ama alt sınıfa açıktır.

class Animal {
  protected name: string;
  constructor(name: string) {
    this.name = name;
  }
}
class Dog extends Animal {
  bark(): string {
    return this.name + " havlıyor";
  }
}
const d = new Dog("Rex");
console.log(d.bark());

private vs protected

private yalnızca tanımlandığı sınıfta erişilebilir; alt sınıfta bile erişilemez. protected ise hem tanımlandığı sınıfta hem de alt sınıflarda erişilebilir. Dışarıdan ikisi de kapalıdır.

class Base {
  private secret: number = 1;
  protected shared: number = 2;
}
class Child extends Base {
  access(): number {
    // this.secret;  // hata
    return this.shared;
  }
}

Uygulama Animal ve Dog sınıfları yaz

Animal sınıfını tanımla: protected name: string alanı ve constructor ile. Dog sınıfı Animal'ı extends etsin ve bark(): string metodu ekle: this.name + " havlıyor" döndür. Yeni bir Dog("Rex") oluştur ve bark() çağır.

Başlangıç kodu

index.ts
// Animal sınıfı tanımla (korunan isim alanı, constructor ile al)
// Dog sınıfı Animal'ı genişletsin
// Dog'a bark metodu ekle, isim + " havlıyor" döndür
// yeni Dog oluştur, bark çağır

Örnek çözüm

index.ts
class Animal {
  protected name: string;
  constructor(name: string) {
    this.name = name;
  }
}

class Dog extends Animal {
  bark(): string {
    return this.name + " havlıyor";
  }
}

const d = new Dog("Rex");
console.log(d.bark());

Beklenen çıktı

Rex havlıyor

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 protected bir alana alt sınıftan erişilebilir mi?

  • Yalnızca statik metottan
  • Hayır, hiçbir yerden
  • Yalnızca aynı dosyadan
  • Evet, alt sınıftan erişilir Doğru cevap

Açıklama: protected, sınıfın kendisi ve alt sınıfları (extends ile türeyen) içinden erişilebilir. private ise yalnızca sınıfın kendisinden; alt sınıftan erişilemez.

2 protected belirtecini tamamla

Soru
class Animal {
  ____ name: string;
}
Cevap
class Animal {
  protected name: string;
}

Açıklama: name alanının alt sınıflardan da erişilebilmesini istediğin için protected yazmalısın. public dışarıya açar, private alt sınıfa kapatır, static ise sınıf düzeyine taşır.

3 protected parçaları

Kavram Anlamı
protected Sınıf ve alt sınıftan erişilir
extends Animal Alt sınıf tanımı
class Dog Alt sınıf
private Alt sınıfta erişilemez

Orta seviye bölümündeki tüm dersler