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 класын түзүңүз.