Vererbung vs. Zusammensetzung
Vererbung und Zusammensetzung sind zwei wichtige Konzepte, die in OOP (Object Oriented Programming) zu finden sind. In einfachen Worten, sowohl die Zusammensetzung als auch die Vererbung behandeln eine Klasse mit zusätzlichen Eigenschaften oder Verhalten. Vererbung ist die Fähigkeit einer Klasse, Eigenschaften und Verhalten von einer übergeordneten Klasse durch Erweiterung zu erben. Auf der anderen Seite ist Komposition die Fähigkeit einer Klasse, Objekte verschiedener Klassen als Mitgliedsdaten zu enthalten.
Was ist Vererbung??
Wie oben erwähnt, ist Vererbung die Fähigkeit einer Klasse, Eigenschaften und Verhalten von einer übergeordneten Klasse zu erben, indem sie erweitert wird. Vererbung ermöglicht im Wesentlichen die Wiederverwendung von Code, indem die Erweiterung der Eigenschaften und des Verhaltens einer vorhandenen Klasse um eine neu definierte Klasse ermöglicht wird. Wenn Klasse A B erweitert, wird Klasse B als übergeordnete Klasse (oder Superklasse) und Klasse A als untergeordnete Klasse (oder abgeleitete Klasse / Unterklasse) bezeichnet. In diesem Beispielszenario erbt die Klasse A alle öffentlichen und geschützten Attribute und Methoden der Superklasse (B). Die Unterklasse kann das von der übergeordneten Klasse geerbte Verhalten optional überschreiben (neue oder erweiterte Funktionalität für Methoden bereitstellen).
Vererbung steht für eine "Ist-Beziehung" in OOP. Dies bedeutet im Wesentlichen, dass A auch B ist. Mit anderen Worten, B kann die Klasse mit einer allgemeinen Beschreibung einer bestimmten Entität der realen Welt sein, aber A spezifiziert eine bestimmte Spezialisierung. In einem realen Programmierproblem könnte die Person-Klasse um die Employee-Klasse erweitert werden. Dies wird als Spezialisierung bezeichnet. Sie können aber auch zuerst die Employee-Klasse erstellen und diese dann auch auf eine Person-Klasse verallgemeinern (d. H. Verallgemeinerung). In diesem Beispiel verfügt der Mitarbeiter über alle Eigenschaften und das Verhalten der Person (d. H. Der Mitarbeiter ist auch eine Person) und kann einige zusätzliche Funktionen enthalten (also ist die Person kein Mitarbeiter).
Was ist Komposition??
Zusammensetzung ist die Fähigkeit einer Klasse, Objekte verschiedener Klassen als Elementdaten zu enthalten. Beispielsweise könnte die Klasse A ein Objekt der Klasse B als Mitglied enthalten. Hier können alle in B definierten öffentlichen Methoden (oder Funktionen) innerhalb der Klasse A ausgeführt werden. Klasse A wird zum Container, während Klasse B zur enthaltenen Klasse wird. Die Zusammensetzung wird auch als Containerschiff bezeichnet. In diesem Beispiel kann gesagt werden, dass sich die Klasse A aus der Klasse B zusammensetzt. In OOP repräsentiert Composition eine "has-a" -Beziehung. Es ist wichtig zu beachten, dass der Container zwar keine Berechtigung hat, alle öffentlichen Methoden der enthaltenen Klasse auszuführen, jedoch keine zusätzlichen Funktionen bereitstellen oder ändern kann. Wenn es sich um ein Programmierproblem in der realen Welt handelt, kann ein Objekt der Klasse TextBox in der Klasse Form enthalten sein. Daher kann gesagt werden, dass ein Formular eine TextBox enthält (oder alternativ besteht ein Formular aus einer TextBox)..
Was ist der Unterschied zwischen Vererbung und Zusammensetzung??
Obwohl Vererbung und Zusammensetzung zwei OOP-Konzepte sind, unterscheiden sie sich in dem, was sie dem Programmierer erlauben. Vererbung ist die Fähigkeit einer Klasse, Eigenschaften und Verhalten von einer übergeordneten Klasse durch Erweiterung zu erben, während Composition die Fähigkeit einer Klasse ist, Objekte verschiedener Klassen als Elementdaten zu enthalten. Wenn eine Klasse erweitert wird, erbt sie alle öffentlichen und geschützten Eigenschaften / Verhalten, und diese Verhaltensweisen können von der Unterklasse überschrieben werden. Wenn eine Klasse jedoch in einer anderen Klasse enthalten ist, kann der Container das enthaltene nicht ändern oder Verhalten hinzufügen. Vererbung steht für eine "Ist-Beziehung" in OOP, während Composition eine "Hat-A-Beziehung" darstellt.