OOP-də Abstract Metodlar TypeScript-də
Elə hallar olur ki, törəmə siniflərin ümumi metodu
olmalıdır, lakin bu metodun realizasiyası konkret
törəmədən asılıdır. Bu halda bu metod, onun
realizasiyasını yazmadan, ana abstrakt sinifdə
elân edilə bilər. Və onda törəmələr bu metodları
realizə etməyə məcbur olacaqlar. Belə metodlar
abstrakt metodlar adlanır və
abstract açar sözü ilə də elan olunur.
Nümunə üçün bizim abstrakt User sinfimizi
götürək. Qoy bu sinfin varisləri mütləq
obyektin məlumatlarını çıxaran show
metoduna malik olsun.
Lakin bu metodun realizasiyası törəmədən
asılı olacaq. Gəlin User sinfində bu
metodu abstrakt kimi elan edək:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Gəlin bu metodu Student törəmə sinfində realizə edək:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
show() {
return this.name + ' ' + this.course;
}
}
Gəlin bu metodu Employee törəmə sinfində realizə edək:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
show() {
return this.name + ' ' + this.salary;
}
}
Abstrakt Figure sinfində sahəni və perimetri
almaq üçün abstrakt metodlar yaradın.
Square və Rectangle törəmə siniflərində
bu metodların realizasiyasını yazın.