TypeScript-dä OOP abstrakt klasslar
Bize ata-klassyň, jemläp aýdylanda, umumy aýratynlyklary we metotlary bar, we ondan waris alýan çagalaryň klasslary bar bolup bilýän ýagdaýylar bolýar.
Şeýle-de bolup biler, biz çaga-klaslaryň obýektlerini döredýäris, ýöne ata-klassyňkyny däl. Ol diňe umumy aýratynlyklary we metotlary jemlemek üçin gerek bolyar.
Bu ýagdaýynda, ata-klassyň obýektlerini döretmegi aýdan ýazgytlaýyn gadagan etmek üçin, biz ony abstrakt hökmünde belledip bileris. Bu abstract açary sözi bilen amala aşyrylýar.
Geliň, mysal üçinde göreli. Bizim User klasymyzy alyp, ony abstrakt hökmünde belledeliň:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
User-dan waris alýan Student klasyny düzeliň:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
User-dan waris alýan Employee klasyny düzeliň:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Geometrik şekili görkezýän Figure atly abstrakt klas düzüň. Onda perimetr we meýdan üçin aýratynlyklar bolsun.
Figure klasyndan waris alýan Square (Kwadrat) klasyny düzüň.
Figure klasyndan waris alýan Rectangle (Düzburchak) klasyny düzüň.