Ich werde versuchen, Antwort in ein paar Zeilen.
Eine Klassenhierarchie bezieht sich wahrscheinlich auf die Struktur, die durch Klassen und Vererbungsverbindungen zwischen ihnen besteht. Beispielsweise haben Sie class Car
, die von class Vehicle
erbt, und so weiter. Das ist eine Klassenhierarchie.
Wenn Sie nun eine Instanz Car
mit dem Operator new
erstellen, erhalten Sie ein Car
Objekt; Es gibt keine Hierarchie. Das heißt, es gibt keine "zwei Objekte, die durch Inhärenz miteinander verbunden sind", wie es die beiden Klassen sind. Wir können sagen, dass Klassenhierarchien bei der Instanziierungszeit "abgeflacht" werden.
Der Ausdruck Objekthierarchien bezieht sich daher oft auf ganze/Teilstrukturen. Vielleicht haben Sie eine andere Klasse, vielleicht mit dem Namen Wheel
, plus eine Referenz von Car
bis Wheel
, so dass Autos bis zu vier Räder enthalten können (stellen Sie sich eine Reihe von Rädern in einem Autoobjekt vor, oder irgendeine andere Art von Container, wenn Sie es wünschen). Diese Anordnung bildet ein Diagramm (und nicht eine Hierarchie) von Objekten und der Laufzeit, wobei ganze/Teil- (manchmal auch "Aggregations-" oder "Zusammensetzungs" -) Beziehungen die Hauptverbindungen sind.
Zusammenfassend: Klassenhierarchien und Objekthierarchien sind völlig verschieden und nicht verwandt.
Ich hoffe, das hilft.
"Klasse" ist die Definition, der Blueprint - der Plan; "Objekt" ist die tatsächliche Instanziierung zur Laufzeit. Im "Design-Modus" haben Sie also Klassenhierarchien. Zur Laufzeit haben Sie Objekthierarchien. –
Ja, die Klassenhierarchie wird durch Vererbungsebenen erstellt. Warum würdest du das einem C-Entwickler erklären? –
Danke Kumpel. Ich muss OO-Präsentation einer Gruppe von Studenten geben, die nur C kennen. Es ist morgen und ich bin nervös, da wir so viele theoretische Sachen wie Hierarchien usw. haben :( – Mustafa