Abstracte OOP klassen in TypeScript
Er zijn situaties waarin we een ouderklasse hebben die algemene eigenschappen en methoden bevat, en daarvan erven subklassen.
Tegelijkertijd kan het zo zijn dat we objecten van de subklassen zullen aanmaken, maar niet van de ouderklasse. Deze is alleen nodig voor het groeperen van algemene eigenschappen en methoden.
In dit geval, om het aanmaken van objecten
van de ouderklasse expliciet te verbieden, kunnen we
hem abstract verklaren. Dit
gebeurt met het sleutelwoord abstract.
Laten we naar een voorbeeld kijken. We nemen onze
klasse User en verklaren hem abstract:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
Laten we de klasse Student maken, die
erft van User:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
Laten we de klasse Employee maken, die
erft van User:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Maak een abstracte klasse Figure,
die een geometrische figuur voorstelt.
Laat er eigenschappen in zijn voor de omtrek
en oppervlakte.
Maak een klasse Square, die erft
van de klasse Figure.
Maak een klasse Rectangle, die erft
van de klasse Figure.