Die Vererbung ist ein grundlegendes Prinzip der objektorientierten Programmierung, das auch in TypeScript zur Erweiterung von Klassen und Schnittstellen genutzt wird. Sie bietet eine effektive Möglichkeit, den Code zu organisieren und die Wiederverwendung von Code-Teilen zu fördern.
Im Herzen der Vererbung steht das Konzept der Subklassen und Superklassen. Austauschbar mit den Begriffen "Kindklasse" und "Elternklasse" definiert die Superklasse allgemeine Merkmale, die von der Subklasse geerbt werden. Dabei kann die Subklasse diese Merkmale unverändert übernehmen, sie überschreiben oder weitere Merkmale hinzufügen.
Die Syntax der Vererbung in TypeScript ist recht einfach und folgt der Struktur class Child extends Parent {}
.
class Animal {
move() {
console.log('Moving...');
}
}
class Dog extends Animal {
bark() {
console.log('Woof!');
}
}
Im obigen Beispiel ist Animal
die Superklasse und Dog
die Subklasse. Dog
erbt die Method move()
von Animal
und ergänzt diese mit einer weiteren Methode, bark()
.
Auch bei Schnittstellen kann die Vererbung genutzt werden. Sie ermöglicht es, neue Schnittstellen zu erstellen, die bereits definierte Methoden, Eigenschaften und Events anderer Schnittstellen erweitern oder überschreiben. Beispiel:
interface Shape {
color: string;
}
interface Square extends Shape {
sideLength: number;
}
let square = {} as Square;
square.color = "blue";
square.sideLength = 10;
In diesem Beispiel erweitert die Schnittstelle Square
die Schnittstelle Shape
, indem sie die Eigenschaft sideLength
hinzufügt. Das Objekt square
implementiert somit beide Eigenschaften - color
von Shape
und sideLength
von Square
.
Es ist wichtig anzumerken, dass Vererbung sorgfältig und sparsam eingesetzt werden sollte. Eine zu tief verschachtelte oder komplizierte Hierarchie kann den Code unübersichtlich und schwer wartbar machen. Entsprechend empfehlen viele Experten die Anwendung des Prinzips "Komposition über Vererbung" in der Programmierung.