Unterschied Zwischen Vererbung Und Zusammensetzung

Unterschied Zwischen Vererbung Und Zusammensetzung
Unterschied Zwischen Vererbung Und Zusammensetzung

Video: Unterschied Zwischen Vererbung Und Zusammensetzung

Video: Unterschied Zwischen Vererbung Und Zusammensetzung
Video: Chromosome, Gene, DNS / DNA – Grundbegriffe Genetik ● Gehe auf SIMPLECLUB.DE/GO 2024, April
Anonim

Vererbung gegen Zusammensetzung

Vererbung und Komposition sind zwei wichtige Konzepte in OOP (Object Oriented Programming). In einfachen Worten, sowohl Zusammensetzung als auch Vererbung befassen sich mit der Bereitstellung zusätzlicher Eigenschaften oder Verhaltensweisen für eine Klasse. Vererbung ist die Fähigkeit einer Klasse, Eigenschaften und Verhalten von einer übergeordneten Klasse zu erben, indem sie diese erweitert. Andererseits ist Komposition die Fähigkeit einer Klasse, Objekte verschiedener Klassen als Elementdaten 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 diese erweitert. Die Vererbung bietet im Wesentlichen die Wiederverwendung von Code, indem die Eigenschaften und das Verhalten einer vorhandenen Klasse um eine neu definierte Klasse erweitert werden. 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 Klasse A alle öffentlichen und geschützten Attribute und Methoden der Superklasse (B). Die Unterklasse kann optional das von der übergeordneten Klasse geerbte Verhalten überschreiben (Methoden neue oder erweiterte Funktionen bereitstellen).

Vererbung repräsentiert eine "is-a" -Beziehung in OOP. Dies bedeutet im Wesentlichen, dass A auch ein B ist. Mit anderen Worten, B kann die Klasse mit einer allgemeinen Beschreibung einer bestimmten realen Entität sein, aber A spezifiziert eine bestimmte Spezialisierung. In einem realen Programmierproblem könnte die Person-Klasse erweitert werden, um die Employee-Klasse zu erstellen. Dies nennt man Spezialisierung. Sie können die Employee-Klasse aber auch zuerst erstellen und dann auch auf eine Person-Klasse verallgemeinern (dh verallgemeinern). In diesem Beispiel verfügt der Mitarbeiter über alle Eigenschaften und das Verhalten der Person (dh der Mitarbeiter ist auch eine Person) und enthält möglicherweise einige zusätzliche Funktionen (die Person ist also kein Mitarbeiter).

Was ist Zusammensetzung?

Zusammensetzung ist die Fähigkeit einer Klasse, Objekte verschiedener Klassen als Elementdaten zu enthalten. Beispielsweise könnte 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 Containership bezeichnet. In diesem Beispiel kann gesagt werden, dass Klasse A aus Klasse B besteht. In OOP repräsentiert Composition eine "has-a" -Beziehung. Es ist wichtig zu beachten, dass der Container zwar Zugriff auf alle öffentlichen Methoden der enthaltenen Klasse hat, jedoch keine zusätzlichen Funktionen ändern oder bereitstellen kann. Wenn es um ein reales Programmierproblem geht, kann ein Objekt der Klasse TextBox in der Klasse Form enthalten sein.und somit 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 Komposition zwei OOP-Konzepte sind, unterscheiden sie sich erheblich darin, was sie dem Programmierer ermöglichen. Vererbung ist die Fähigkeit einer Klasse, Eigenschaften und Verhalten von einer übergeordneten Klasse durch Erweiterung zu erben, während Komposition 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 / Verhaltensweisen, und diese Verhaltensweisen können von der Unterklasse überschrieben werden. Wenn jedoch eine Klasse in einer anderen enthalten ist, kann der Container das enthaltene Verhalten nicht ändern oder hinzufügen. Vererbung stellt eine O-Beziehung in OOP dar, während Komposition eine Habe-Beziehung darstellt.

Empfohlen: