Abstrakte OOP klasser i TypeScript
Der er situationer, hvor vi har en forældreklasse, der indeholder fælles egenskaber og metoder, og den arves af underklasser.
Samtidig kan det være, at vi vil oprette objekter af underklasser, men ikke forældreklassen. Den er kun nødvendig for os for at gruppere fælles egenskaber og metoder.
I dette tilfælde, for eksplicit at forbyde oprettelse
af objekter af forældreklassen, kan vi
erklære den abstrakt. Dette
gøres ved hjælp af nøgleordet abstract.
Lad os se på et eksempel. Lad os tage vores
klasse User og erklære den abstrakt:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
Lad os oprette klassen Student, som arver
fra User:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
Lad os oprette klassen Employee, som arver
fra User:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Opret en abstrakt klasse Figure,
der repræsenterer en geometrisk figur.
Lad den have egenskaber for omkreds
og areal.
Lav en klasse Square, der arver
fra klassen Figure.
Lav en klasse Rectangle, der arver
fra klassen Figure.