Абстрактӣ Классҳои ООП дар TypeScript
Ҳолатҳое вуҷуд доранд, ки мо як класи модарӣ дорем, ки хосиятҳо ва методҳои умумӣ дорад, ва аз он класҳои фарзандӣ мерос мегиранд.
Дар ин ҳол, метавонад чунин бошад, ки мо объектҳои класҳои фарзандӣ эҷод кунем, вале аз класи модарӣ на. Он танҳо барои гурӯҳбандии хосиятҳо ва методҳои умумӣ ба мо лозим аст.
Дар ин ҳолат, барои мустақиман манъ кардани эҷоди
объектҳои класи модарӣ, мо метавонем
онро абстрактӣ эълон кунем. Ин
бо ёрии калимаи калидӣ abstract анҷом дода мешавад.
Биёед ба мисол назар кунем. Бигирем класи
User-ро ва онро абстрактӣ эълон кунем:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
Биёед класи Student-ро созем, ки аз
User мерос мегирад:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
Биёед класи Employee-ро созем, ки аз
User мерос мегирад:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Класи абстрактии Figure-ро эҷод кунед,
ки шакли геометрӣ мебошад.
Бигзор дар он хосиятҳо барои периметр
ва масоҳат бошад.
Класи Square-ро созед, ки аз
класи Figure мерос мегирад.
Класи Rectangle-ро созед, ки аз
класи Figure мерос мегирад.