TypeScript да Абстракт ООП Класслар
Бизда ота-она класси бўлиши мумкин, у умумий хусусиятлар ва усулларни ўз ичига олади, ва ундан фарзанд класслар мерос олади.
Шу билан бирга, шундай бўлиши мумкинки, биз фарзанд классларнинг объектларини яратамиз, лекин ота-она классиники эмас. У бизга факат умумий хусусиятлар ва усулларни гуруҳлаш учун керак.
Бундай ҳолда, ота-она классининг объектларини яратишни
аник тақиқлаш учун, уни абстракт эълон қилишимиз мумкин.
Бу abstract калит сўзи ёрдамида бажарилади.
Келгила, мисолда кўрамиз. Бизнинг User классимизни олиб,
уни абстракт деб эълон қиламиз:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
User дан мерос олувчи Student классини яраймиз:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
User дан мерос олувчи Employee классини яраймиз:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Геометрик шаклни ифодаловчи абстракт Figure классини
яратинг.
Унда периметр ва юза учун хусусиятлар бўлсин.
Figure классидан мерос олувчи Square классини
яратинг.
Figure классидан мерос олувчи Rectangle классини
яратинг.