Abstraktni OOP razredi v TypeScript
Obstajajo situacije, ko imamo nadrejeni razred, ki vsebuje splošne lastnosti in metode, od njega pa podedujejo podrejeni razredi.
Ob tem se lahko zgodi, da bomo ustvarjali objekte podrejenih razredov, ne pa tudi nadrejenega razreda. Ta nam je potreben samo za združevanje splošnih lastnosti in metod.
V tem primeru lahko, da izrecno prepovemo ustvarjanje
objektov nadrejenega razreda,
razglasimo, da je abstrakten. To
naredimo s ključno besedo abstract.
Poglejmo si na primeru. Vzemimo naš
razred User in ga razglasimo za abstrakten:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
Naredimo razred Student, ki podeduje
od User:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
Naredimo razred Employee, ki podeduje
od User:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Ustvarite abstrakten razred Figure,
ki predstavlja geometrično figuro.
Naj ima lastnosti za obseg
in ploščino.
Naredite razred Square, ki podeduje
od razreda Figure.
Naredite razred Rectangle, ki podeduje
od razreda Figure.