CodeBlanks Logo Icon CodeBlanks

Özet - İleri sınıflar

abstract sınıf ve interface ile bir şekil hiyerarşisi yazarsın.

Özet - İleri sınıflar

Bu grupta abstract sınıfları, implements ile interface uygulama ve getter/setter erişimcilerini öğrendin. abstract class temel sınıf oluşturur; implements bir interface'in sözleşmesini sınıfa uygular; get ve set ise özelliklere denetimli erişim sağlar.

abstract class Sekil {
  abstract alan(): number;
}
class Kare extends Sekil implements Cizilebilir {
  get ad() { return "kare"; }
  alan() { return 4 * 4; }
  ciz() {}
}

Uygulama Sekil hiyerarşisi yaz

abstract class Sekil tanımla; içinde abstract alan(): number bildir. interface Cizilebilir tanımla; içinde ciz(): void bildir. Kare sınıfı Sekil'i genişletsin, Cizilebilir'i uygulansın, kenar parametresi alsın, alan kenar * kenar dönsün, ciz "kare çizildi" yazsın. Son satırda new Kare(3).alan() sonucunu yazdır.

Başlangıç kodu

index.ts
// Sekil adinda abstract sinif: alan metodu number donsun
// Cizilebilir adinda interface: ciz metodu void donsun
// Kare sinifi Sekil'i genişletip Cizilebilir'i uygulasin
// alan kenar*kenar donsun, ciz "kare çizildi" yazsin

// console.log(new Kare(3).alan());

Örnek çözüm

index.ts
abstract class Sekil {
  abstract alan(): number;
}
interface Cizilebilir {
  ciz(): void;
}
class Kare extends Sekil implements Cizilebilir {
  kenar: number;
  constructor(kenar: number) { super(); this.kenar = kenar; }
  alan(): number { return this.kenar * this.kenar; }
  ciz(): void { console.log("kare çizildi"); }
}
console.log(new Kare(3).alan());

Beklenen çıktı

9

Soru ve cevaplar

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

1 Bir sınıfın hem temel sınıftan miras alıp hem bir interface'i uygulaması nasıl yazılır?

  • class X abstract B implements I
  • class X extends B, I
  • class X extends B implements I Doğru cevap
  • class X implements I extends B

Açıklama: TypeScript'te önce extends ile temel sınıf, sonra implements ile interface yazılır; ikisi de aynı sınıfta olabilir.

2 Setter anahtar kelimesi

Soru
class Kasa {
  private _para = 0;
  ____ para(v: number) { this._para = v; }
}
Cevap
class Kasa {
  private _para = 0;
  set para(v: number) { this._para = v; }
}

Açıklama: Bir özelliğe değer atanırken çalışan erişim metodu `set` anahtar kelimesi ile tanımlanır.

3 İleri sınıf kavramları

Kavram Anlamı
abstract Temel sınıf işareti
implements Interface sözleşmesi
get Okuma erişimcisi
extends Miras alma

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