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