Kelas OOP Abstrak dalam TypeScript

Terdapat situasi di mana kita mempunyai kelas induk yang mengandungi sifat dan kaedah umum, dan kelas anak mewarisi daripadanya.

Pada masa yang sama, mungkin berlaku bahawa kita akan mewujudkan objek kelas anak, tetapi bukan kelas induk. Ia hanya diperlukan untuk kita untuk mengumpulkan sifat dan kaedah umum.

Dalam kes ini, untuk secara jelas melarang penciptaan objek kelas induk, kita boleh mengisytiharkannya sebagai abstrak. Ini dilakukan dengan menggunakan kata kunci abstract.

Mari kita lihat contoh. Ambil kelas User kita dan isytiharkannya sebagai abstrak:

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

Mari buat kelas Student, yang mewarisi dari User:

typescriptclass Student extends User {
  public course: number;

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

Mari buat kelas Employee, yang mewarisi dari User:

typescriptclass Employee extends User {
  public salary: number;

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

Buat kelas abstrak Figure, yang mewakili bentuk geometri. Biarkan ia mempunyai sifat untuk perimeter dan luas.

Задание 2

Buat kelas Square, yang mewarisi dari kelas Figure.

Задание 3

Buat kelas Rectangle, yang mewarisi dari kelas Figure.