Kelas OOP Abstrak di TypeScript
Ada situasi di mana kita memiliki kelas induk yang berisi properti dan metode umum, dan kelas turunan mewarisi darinya.
Pada saat yang sama, mungkin saja kita akan membuat objek dari kelas turunan, tetapi tidak dari kelas induk. Kelas induk hanya kita butuhkan untuk mengelompokkan properti dan metode umum.
Dalam kasus ini, untuk secara jelas melarang pembuatan
objek dari kelas induk, kita dapat
mendeklarasikannya sebagai abstrak. Hal ini
dilakukan dengan menggunakan kata kunci abstract.
Mari kita lihat contohnya. Ambil kelas
User kita dan deklarasikan sebagai abstrak:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
Mari buat kelas Student, yang mewarisi
dari User:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
Mari buat kelas Employee, yang mewarisi
dari User:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Buatlah kelas abstrak Figure,
yang merepresentasikan sebuah bentuk geometris.
Biarkan di dalamnya terdapat properti untuk keliling
dan luas.
Buatlah kelas Square, yang mewarisi
dari kelas Figure.
Buatlah kelas Rectangle, yang mewarisi
dari kelas Figure.