TypeScriptda OOBda Abstrakt Metodlar
Ba'zida voris sinflarda umumiy metod bo'lishi kerak,
ammo bu metodning amalga oshirilishi aniq vorisga
bog'liq bo'ladi. Bunday hollarda bu metodni abstrakt
ota sinfda e'lon qilish mumkin, uning amalga oshirilishisiz.
Shunda vorislar bu metodlarni amalga oshirishga majbur
bo'ladilar. Bunday metodlar abstrakt metodlar deb
ataladi va ular abstract kalit so'zi yordamida
ham e'lon qilinadi.
Misol uchun bizning User abstrakt sinfimizni olaylik.
Ushbu sinfning vorislari show metodiga ega bo'lishi
shart, bu metod ob'ekt ma'lumotlarini chiqaradi.
Ammo bu metodning amalga oshirilishi vorisga bog'liq.
Keling, User sinfida bu metodni abstrakt sifatida
e'lon qilaylik:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Keling, bu metodni Student voris sinfida amalga oshiramiz:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
show() {
return this.name + ' ' + this.course;
}
}
Keling, bu metodni Employee voris sinfida amalga oshiramiz:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
show() {
return this.name + ' ' + this.salary;
}
}
Figure abstrakt sinfida yuzani va perimetrni
olish uchun abstrakt metodlar yarating.
Square va Rectangle voris sinflarida
ushbu metodlarning amalga oshirilishini yozing.