Unterschied zwischen Vererbung und Containership

Anonim

Vererbung und Containerschaft

Vererbung und Containership sind zwei wichtige Konzepte, die in OOP (Object Oriented Programming Example: C ++) gefunden werden. Vereinfacht werden sowohl Containership als auch Inheritance mit der Bereitstellung zusätzlicher Eigenschaften oder Verhaltensweisen für eine Klasse befasst. Vererbung ist die Fähigkeit einer Klasse, Eigenschaften und Verhalten von einer übergeordneten Klasse zu erben, indem sie erweitert wird. Auf der anderen Seite ist Containership die Fähigkeit einer Klasse, Objekte verschiedener Klassen als Memberdaten zu enthalten.

Was ist Inheritance?

Wie oben erwähnt, ist Inheritance die Fähigkeit einer Klasse, Eigenschaften und Verhalten von einer übergeordneten Klasse zu erben, indem sie erweitert wird. Vererbung bietet im Wesentlichen die Wiederverwendung von Code, indem es die Erweiterung von Eigenschaften und Verhalten einer vorhandenen Klasse um eine neu definierte Klasse ermöglicht. 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 Super-Klasse (B). Die Unterklasse kann optional das Verhalten, das von der übergeordneten Klasse geerbt wird, überschreiben (neue oder erweiterte Funktionalität für Methoden bereitstellen). Vererbung stellt eine OOP-Beziehung dar. Dies bedeutet im Wesentlichen, dass A auch ein B ist. Mit anderen Worten kann B die Klasse mit einer allgemeinen Beschreibung einer bestimmten realen Weltentitä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 wird als Spezialisierung bezeichnet. Sie könnten aber auch zuerst die Employee-Klasse erstellen und sie dann auch auf eine Person-Klasse verallgemeinern (zB Generalisierung). In diesem Beispiel hat der Mitarbeiter alle Eigenschaften und das Verhalten der Person (dh Mitarbeiter ist auch eine Person) und kann zusätzliche Funktionen enthalten (also Person ist auch kein Mitarbeiter).

Was ist Containerschiff?

Containership ist die Fähigkeit einer Klasse, Objekte verschiedener Klassen als Memberdaten zu enthalten. Beispielsweise kann 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. Containership wird auch als Composition bezeichnet. In diesem Beispiel kann gesagt werden, dass Klasse A aus Klasse B besteht. In OOP stellt Containership eine "has-a" Beziehung dar. Es ist wichtig zu beachten, dass der Container zwar Zugriff auf alle öffentlichen Methoden der enthaltenen Klasse hat, jedoch nicht in der Lage ist, zusätzliche Funktionen zu ändern oder bereitzustellen. 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 dazu besteht ein Formular aus einer TextBox).

Unterschied zwischen Vererbung und Containership

Obwohl Vererbung und Containership zwei OOP-Konzepte sind, unterscheiden sie sich in der Art und Weise, wie sie dem Programmierer ermöglichen. Vererbung ist die Fähigkeit einer Klasse, Eigenschaften und Verhalten von einer übergeordneten Klasse zu erben, indem sie sie erweitert, während Containership die Fähigkeit einer Klasse ist, Objekte verschiedener Klassen als Mitglied-Daten 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 nicht in der Lage sein, das enthaltene Verhalten zu ändern oder hinzuzufügen. Vererbung stellt eine OOP-Beziehung dar, während Containership eine "has-a" -Beziehung darstellt.