Abstraktie OOP klasi TypeScript
Ir situācijas, kad mums ir vecāku klase, kura satur kopīgas īpašības un metodes, un no tās manto bērnu klases.
Turklāt var būt tā, ka mēs izveidosim objektus no bērnu klasēm, bet ne no vecāku klases. Tas mums ir vajadzīgs tikai lai grupētu kopīgas īpašības un metodes.
Šajā gadījumā, lai skaidri aizliegtu izveidot
objektus no vecāku klases, mēs varam
deklarēt to kā abstraktu. Tas
tiek darīts, izmantojot atslēgvārdu abstract.
Apskatīsim piemēru. Paņemsim mūsu
klasi User un deklarēsim to kā abstraktu:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
Izveidosim klasi Student, kura manto
no User:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
Izveidosim klasi Employee, kura manto
no User:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Izveidojiet abstraktu klasi Figure,
kura attēlo ģeometrisku figūru.
Lai tajā būtu īpašības perimetram
un laukumam.
Izveidojiet klasi Square, kura manto
no klases Figure.
Izveidojiet klasi Rectangle, kura manto
no klases Figure.