Kaedah Abstrak dalam OOP dalam TypeScript

Kadang-kadang, kelas-kelas keturunan mesti mempunyai kaedah yang sama, namun, pelaksanaan kaedah ini bergantung pada keturunan tertentu. Dalam kes ini, kaedah ini boleh diisytiharkan dalam kelas abstrak induk, tanpa menulis pelaksanaannya. Dan kemudian keturunan akan diwajibkan untuk melaksanakan kaedah-kaedah ini. Kaedah seperti itu dipanggil abstrak dan juga diisytiharkan menggunakan kata kunci abstract.

Mari kita ambil kelas abstrak kami User sebagai contoh. Biarkan pewaris kelas ini pasti mesti mempunyai kaedah show, yang memaparkan data objek.

Pelaksanaan kaedah ini, bagaimanapun, akan bergantung pada keturunan. Mari kita dalam kelas User isyhtiharkan kaedah ini sebagai abstrak:

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

Mari kita laksanakan kaedah ini dalam kelas keturunan Student:

typescriptclass Student extends User {
  public course: number;

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

Mari kita laksanakan kaedah ini dalam kelas keturunan Employee:

typescriptclass Employee extends User {
  public salary: number;

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

Dalam kelas abstrak Figure, buat kaedah abstrak untuk mendapatkan luas dan perimeter.

Задание 2

Dalam kelas-kelas keturunan Square dan Rectangle, tulis pelaksanaan kaedah-kaedah ini.