Abstrakte Methoden in OOP in TypeScript
Es kommt vor, dass abgeleitete Klassen
eine gemeinsame Methode haben müssen,
die Implementierung dieser Methode jedoch
von der konkreten abgeleiteten Klasse abhängt. In
diesem Fall kann diese Methode in der
abstrakten Elternklasse deklariert werden, ohne ihre
Implementierung zu schreiben. Dann sind die abgeleiteten Klassen
verpflichtet, diese Methoden zu implementieren. Solche
Methoden werden abstrakte Methoden genannt und
werden ebenfalls mit dem Schlüsselwort
abstract deklariert.
Nehmen wir zum Beispiel unsere abstrakte
Klasse User. Angenommen, Erben dieser
Klasse müssen eine Methode show haben,
die die Objektdaten ausgibt.
Die Implementierung dieser Methode wird jedoch
vom Erben abhängen. Deklarieren wir diese Methode
in der Klasse User als abstrakt:
abstract class User {
public name: string;
constructor(name: string) {
this.name = name;
}
public abstract show(): string;
}
Implementieren wir diese Methode in der abgeleiteten Klasse Student:
class Student extends User {
public course: number;
constructor(name: string, course: number) {
super(name);
this.course = course;
}
show() {
return this.name + ' ' + this.course;
}
}
Implementieren wir diese Methode in der abgeleiteten Klasse Employee:
class Employee extends User {
public salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
show() {
return this.name + ' ' + this.salary;
}
}
Erstellen Sie in der abstrakten Klasse Figure
abstrakte Methoden zum Abrufen der Fläche
und des Umfangs.
Schreiben Sie in den abgeleiteten Klassen Square und
Rectangle die Implementierung dieser
Methoden.