TypeScript-də Abstract OOP Sinifləri
Elə hallar olur ki, bizim ümumi xassələr və metodlar saxlayan ana sinifimiz olur, və ondan törəmə siniflər miras alır.
Eyni zamanda elə ola bilər ki, biz törəmə siniflərin obyektlərini yaradırıq, amma ana sinfin özünün yox. O, bizim üçün yalnız ümumi xassələrin və metodların qruplaşdırılması üçün lazımdır.
Bu halda, ana sinfin obyektlərinin yaradılmasını aydın şəkildə qadağan etmək üçün,
onu abstract elan etmək olar. Bu, abstract açar sözü ilə edilir.
Gəlin nümunəyə baxaq. Gəlin bizim User sinfimizi götürək və onu abstract elan edək:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
Gəlin User-dən miras alan Student sinfini yaradaq:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
Gəlin User-dən miras alan Employee sinfini yaradaq:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Həndəsi fiquru təmsil edən abstract Figure sinfini yaradın.
Onda perimetr və sahə üçün xassələr olsun.
Figure sinfindən miras alan Square sinfini yaradın.
Figure sinfindən miras alan Rectangle sinfini yaradın.