Abstraktās metodes OOP TypeScript
Dažreiz gadās, ka bērnu klasēm ir jābūt
kopīgai metodei, taču šīs metodes implementācija
ir atkarīga no konkrētā bērna. Šajā
gadījumā šo metodi var deklarēt vecāku
abstraktajā klasē, nerakstot tās
implementāciju. Un tad bērni būs
saspiesti implementēt šīs metodes. Šādas
metodes sauc par abstraktajām un
tās arī tiek deklarētas, izmantojot atslēgvārdu
abstract.
Piemēram, ņemsim mūsu abstrakto klasi
User. Ļaujiet šīs klases mantiniekiem
obligāti jābūt metodei show,
kas izvada objekta datus.
Šīs metodes implementācija tomēr būs
atkarīga no bērna. Ļaujiet klasē User
deklarēt šo metodi kā abstraktu:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Implementēsim šo metodi bērna klasē Student:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
show() {
return this.name + ' ' + this.course;
}
}
Implementēsim šo metodi bērna klasē Employee:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
show() {
return this.name + ' ' + this.salary;
}
}
Abstraktajā klasē Figure izveidojiet
abstraktās metodes laukuma un perimetra iegūšanai.
Bērnu klasēs Square un
Rectangle ierakstiet šo metožu
implementāciju.