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