TypeScript-те ОЖЖ-де абстракті әдістер
Кейде туынды кластарда ортақ әдіс болуы керек болады,
бірақ бұл әдістің іске асырылуы нақты туындыға байланысты болады.
Бұл жағдайда бұл әдісті ата-ананың абстракті класында
оның іске асырылуын жазбай-ақ жариялауға болады.
Сонда туындылар бұл әдістерді міндетті түрде іске асыруы керек болады.
Мұндай әдістер абстракті деп аталады және
abstract кілт сөзі арқылы да жарияланады.
Мысал ретінде біздің User абстракті класын алайық.
Бұл кластың мұрагерлеріnde 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 туынды кластарында осы
әдістердің іске асырылуын жазыңыз.