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:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Mari kita laksanakan kaedah ini dalam kelas keturunan Student:
class 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:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
show() {
return this.name + ' ' + this.salary;
}
}
Dalam kelas abstrak Figure, buat
kaedah abstrak untuk mendapatkan luas
dan perimeter.
Dalam kelas-kelas keturunan Square dan
Rectangle, tulis pelaksanaan
kaedah-kaedah ini.