TypeScript'te OOP'de Soyut Metotlar

Bazen alt sınıfların ortak bir metoda sahip olması gerekir, ancak bu metodun uygulanması belirli alt sınıfa bağlıdır. Bu durumda, bu metod ana soyut sınıfta uygulaması yazılmadan tanımlanabilir. Ve böylece alt sınıflar bu metotları uygulamak zorunda kalacaklardır. Bu tür metotlara soyut metotlar denir ve abstract anahtar kelimesi kullanılarak da tanımlanırlar.

Örnek olarak soyut sınıfımız User'ı alalım. Bu sınıfın mirasçılarının, nesnenin verilerini gösteren show metoduna kesinlikle sahip olması gerektiğini varsayalım.

Ancak bu metodun uygulanması mirasçıya bağlı olacaktır. User sınıfında bu metodu soyut olarak tanımlayalım:

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

Bu metodu Student alt sınıfında uygulayalım:

typescriptclass Student extends User {
  public course: number;

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

Bu metodu Employee alt sınıfında uygulayalım:

typescriptclass Employee extends User {
  public salary: number;

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

Soyut Figure sınıfında alan ve çevre almak için soyut metotlar yapın.

Задание 2

Square ve Rectangle alt sınıflarında bu metotların uygulamasını yazın.