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: (SQL 5) DELETE; TRUNCATE; DROP TABLE; 2024, November
Anonim

Vererbung vs. Komposition

Vererbung und Komposition sind zwei wichtige Konzepte in OOP (Object Oriented Programming). Einfach ausgedrückt befassen sich sowohl Komposition als auch Vererbung mit der Bereitstellung zusätzlicher Eigenschaften oder Verh altensweisen für eine Klasse. Vererbung ist die Fähigkeit einer Klasse, Eigenschaften und Verh alten von einer übergeordneten Klasse zu erben, indem sie diese erweitert. Andererseits ist Komposition die Fähigkeit einer Klasse, Objekte verschiedener Klassen als Mitgliedsdaten zu enth alten.

Was ist Vererbung?

Wie oben erwähnt, ist Vererbung die Fähigkeit einer Klasse, Eigenschaften und Verh alten von einer übergeordneten Klasse zu erben, indem sie diese erweitert. Die Vererbung ermöglicht im Wesentlichen die Wiederverwendung von Code, indem sie die Erweiterung von Eigenschaften und Verh alten einer vorhandenen Klasse durch eine neu definierte Klasse ermöglicht. Wenn Klasse A B erweitert, wird Klasse B Elternklasse (oder Superklasse) und Klasse A Kindklasse (oder abgeleitete Klasse/Unterklasse) genannt. 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 Verh alten überschreiben (Methoden neue oder erweiterte Funktionalität bereitstellen).

Vererbung repräsentiert eine „Ist-ein“-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 Entität der realen Welt sein, aber A spezifiziert eine bestimmte Spezialisierung. Bei einem realen Programmierproblem könnte die Person-Klasse erweitert werden, um die Employee-Klasse zu erstellen. Das nennt man Spezialisierung. Sie könnten aber auch zuerst die Employee-Klasse erstellen und sie dann auch auf eine Person-Klasse verallgemeinern (d. h.e. Verallgemeinerung). In diesem Beispiel hat der Mitarbeiter alle Eigenschaften und Verh altensweisen der Person (d. h. der Mitarbeiter ist auch eine Person) und kann auch einige zusätzliche Funktionen enth alten (also ist die Person kein Mitarbeiter).

Was ist Komposition?

Zusammensetzung ist die Fähigkeit einer Klasse, Objekte verschiedener Klassen als Mitgliedsdaten zu enth alten. Beispielsweise könnte Klasse A ein Objekt der Klasse B als Mitglied enth alten. 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 enth altenen Klasse wird. Zusammensetzung wird auch als Containerschiff bezeichnet. In diesem Beispiel kann gesagt werden, dass Klasse A aus Klasse B zusammengesetzt ist. In OOP repräsentiert Komposition eine „hat-ein“-Beziehung. Es ist wichtig zu beachten, dass der Container, obwohl er Zugriff zum Ausführen aller öffentlichen Methoden der enth altenen Klasse hat, 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 enth alten sein, und somit kann gesagt werden, dass ein Formular eine TextBox enthält (oder alternativ ein Formular aus einer TextBox besteht).

Was ist der Unterschied zwischen Vererbung und Zusammensetzung?

Obwohl Vererbung und Komposition zwei OOP-Konzepte sind, unterscheiden sie sich sehr darin, was sie dem Programmierer ermöglichen. Vererbung ist die Fähigkeit einer Klasse, Eigenschaften und Verh alten von einer übergeordneten Klasse zu erben, indem sie diese erweitert, während Komposition die Fähigkeit einer Klasse ist, Objekte verschiedener Klassen als Mitgliedsdaten zu enth alten. Wenn eine Klasse erweitert wird, erbt sie alle öffentlichen und geschützten Eigenschaften/Verh altensweisen, und diese Verh altensweisen können von der Unterklasse überschrieben werden. Aber wenn eine Klasse in einer anderen enth alten ist, erhält der Container nicht die Möglichkeit, das Verh alten der enth altenen Klasse zu ändern oder hinzuzufügen. Vererbung stellt eine „ist-ein“-Beziehung in OOP dar, während Komposition eine „hat-ein“-Beziehung darstellt.

Empfohlen: