TypeScript'te Soyut OOP Sınıfları

Bazen öyle durumlar olur ki, ortak özellikler ve metotlar içeren bir ebeveyn sınıfımız vardır, ve ondan alt sınıflar miras alır.

Bu durumda, alt sınıfların nesnelerini oluşturabiliriz ama eveveyn sınıfın nesnelerini oluşturmayız. Ebeveyn sınıf sadece ortak özellikleri ve metotları gruplamak için gereklidir.

Bu durumda, ebeveyn sınıfın nesnelerinin oluşturulmasını açıkça yasaklamak için onu soyut olarak ilan edebiliriz. Bu abstract anahtar kelimesi kullanılarak yapılır.

Bir örnek üzerinden inceleyelim. User sınıfımızı alalım ve onu soyut olarak ilan edelim:

typescriptabstract class User {
  public name: string;
  
  constructor(name: string) {
    this.name = name;
  }
}

User sınıfından miras alan Student sınıfını oluşturalım:

typescriptclass Student extends User {
  public course: number;

  constructor(name: string, course: number) {
    super(name);
    this.course = course;
  }
}

User sınıfından miras alan Employee sınıfını oluşturalım:

typescriptclass Employee extends User {
  public salary: number;

  constructor(name: string, salary: number) {
    super(name);
    this.salary = salary;
  }
}
Задание 1

Geometrik bir şekli temsil eden soyut bir Figure sınıfı oluşturun. İçinde çevre ve alan için özellikler olsun.

Задание 2

Figure sınıfından miras alan Square sınıfını oluşturun.

Задание 3

Figure sınıfından miras alan Rectangle sınıfını oluşturun.