Inheritance, auf Deutsch Vererbung, ist ein fundamentales Prinzip der objektorientierten Programmierung (OOP). Es ermöglicht es einer Klasse, die Eigenschaften und Verhaltensweisen (Methoden) einer anderen Klasse zu übernehmen. Diese Beziehung spiegelt eine "ist-ein"-Beziehung zwischen zwei Klassen wider, bei der die erbende Klasse als Unterklasse oder abgeleitete Klasse und die vererbende Klasse als Oberklasse oder Basisklasse bezeichnet wird.
In der Praxis bedeutet dies, dass eine Unterklasse alle öffentlichen und geschützten Attribute und Methoden ihrer Oberklasse erbt, ohne diese neu implementieren zu müssen. Das bietet mehrere Vorteile:
Ein häufiges Beispiel zur Veranschaulichung von Vererbung ist die Klassenhierarchie von geometrischen Formen. Die Basisklasse "Form" könnte allgemeine Attribute wie Position und Methoden wie "Berechne Fläche" enthalten. Spezifischere Formen, wie ein "Rechteck" oder ein "Kreis", erben diese Eigenschaften von "Form", fügen jedoch ihre spezifischen Attribute und Methoden hinzu, wie Länge und Breite beim Rechteck oder Radius beim Kreis.
Trotz der Vorteile von Vererbung ist es wichtig, Vererbungshierarchien nicht überzukomplizieren. Eine zu tiefe Verschachtelung von Klassen kann zu einer hohen Kopplung und geringen Kohäsion führen, was das Verständnis und die Wartung des Codes erschwert. Deshalb ist es empfehlenswert, Vererbung sinnvoll und mit Bedacht zu verwenden und gegebenenfalls auf alternative OOP-Techniken wie Komposition oder Interfaces auszuweichen.
Zusammengefasst ist Inheritance ein mächtiges Werkzeug in der objektorientierten Softwareentwicklung, das, wenn es richtig eingesetzt wird, die Strukturierung und Wiederverwendung von Code erleichtert und die Grundlage für weitere OOP-Konzepte wie Polymorphismus und Kapselung bildet.