Abstrakte OOP-Klassen in TypeScript
Es gibt Situationen, in denen wir eine übergeordnete Klasse haben, die allgemeine Eigenschaften und Methoden enthält, und davon erben untergeordnete Klassen.
Gleichzeitig kann es sein, dass wir Objekte der untergeordneten Klassen erstellen, aber nicht der übergeordneten Klasse. Sie wird nur von uns benötigt, um gemeinsame Eigenschaften und Methoden zu gruppieren.
In diesem Fall, um die Erstellung von Objekten
der übergeordneten Klasse explizit zu verbieten, kann man
sie als abstrakt deklarieren. Dies
geschieht mit dem Schlüsselwort abstract.
Schauen wir uns ein Beispiel an. Nehmen wir unsere
Klasse User und deklarieren sie als abstrakt:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
}
Erstellen wir die Klasse Student, die
von User erbt:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
}
Erstellen wir die Klasse Employee, die
von User erbt:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
}
Erstellen Sie eine abstrakte Klasse Figure,
die eine geometrische Figur darstellt.
Lassen Sie sie Eigenschaften für den Umfang
und die Fläche haben.
Erstellen Sie eine Klasse Square, die
von der Klasse Figure erbt.
Erstellen Sie eine Klasse Rectangle, die
von der Klasse Figure erbt.