Klasat Abstrakte OOP në TypeScript
Ka situata kur kemi një klasë prindërore që përmban vetitë dhe metodat e përgjithshme, dhe prej saj trashëgohen klasat e pasardhëse.
Në këtë rast mund të jetë se ne do të krijojmë objekte të klasave të pasardhëse, por jo të klasës prindërore. Ajo na nevojitet vetëm për grupimin e vetive dhe metodave të përgjithshme.
Në këtë rast, për të ndaluar qartë krijimin
e objekteve të klasës prindërore, mund
të deklarojmë se ajo është abstrakte. Kjo
bëhet duke përdorur fjalën kyçe abstract.
Le të shohim një shembull. Le të marrim
klasën tonë User dhe ta deklarojmë atë abstrakte:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
Le të bëjmë klasën Student, që trashëgon
nga User:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
Le të bëjmë klasën Employee, që trashëgon
nga User:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Krijoni një klasë abstrakte Figure,
që përfaqëson një figurë gjeometrike.
Le të ketë veti për perimetrin
dhe sipërfaqen.
Bëni klasën Square, që trashëgon
nga klasa Figure.
Bëni klasën Rectangle, që trashëgon
nga klasa Figure.