TypeScriptda ABS OOP Klasslari
Ba'zan holatlar bo'ladi, bizda ota-klass bo'ladi, umumiy xususiyatlar va metodlarni o'z ichiga oladi, va undan voris klasslar meros qoladi.
Shu bilan birga, shunday bo'lishi mumkinki, biz voris klasslarning obyektlarini yaratamiz, lekin ota-klassning obyektini yaratmaymiz. U faqat bizga umumiy xususiyatlar va metodlarni guruhlash uchun kerak.
Bunday holatda, ota-klassning obyektlarini yaratishni
aniq taqiqlash uchun, uni abstrakt deb e'lon qilishimiz mumkin.
Buning uchun abstract kalit so'zi ishlatiladi.
Keling, bir misolni ko'rib chiqaylik. Bizning User
klassimizni olaylik va uni abstrakt deb e'lon qilaylik:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
Keling, User dan meros oluvchi
Student klassini yarataylik:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
Keling, User dan meros oluvchi
Employee klassini yarataylik:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Geometrik shaklni ifodalovchi abstrakt Figure
klassini yarating. Unda perimetr va yuzaga oid
xususiyatlar bo'lsin.
Figure klassidan meros oluvchi
Square klassini yarating.
Figure klassidan meros oluvchi
Rectangle klassini yarating.