Frage zur Vererbung

Um es zu verdeutlichen.

Die Klasse ist ja der Bauplan. Ich habe somit die Oberklasse Auto und dann die Subklasse(erbende Klasse) Audi A4. Man kann somit nur die Baupläne voneinander ableiten bzw. als Vorlage nehmen

Ein Objekt ist dann ein bestimmtes Objekt nach diesem Bauplan. Sagen wir ein Audi A4 mit der Gestellnr 1234.
 
Öhm. :tuedelue:


wenn die klasse auto wäre, könnte man unterklassen limousine, kombi, cabrio, ... unterscheiden.
die objekte der klassen hätten dann bspw. bzgl. heck, dach, raumangebot etc. andere objekte mit anderen attributen, aber bspw. das gleiche fahrwerk, motor etc. der klasse auto.
 
Das liegt aber daran, dass kombis immernoch autos sind 😉 Also der "Bauplan"(die Klasse) Kombi beinhaltet natürlich die Attribute von Auto, aber erweitert diese noch zusätzlich, dass heißt nicht, dass Objekte erben, sondern die Klassen erben von einander...
 
"Also das geerbte Objekte ihre Eigenschaften an weitere Objekte weitergeben können."
Da steht doch, dass Objekte, die bereits geerbt haben, also bereits Unterklasse sind, wieder weiter vererben können?
Und genau das können sie nicht.
Denn wenn einer Eigenschaften geerbt hat muss er bereits Unterklasse sein.
Da wird also behauptet, dass eine ganze Vererbungskette möglich sei:
Auto-Audi-Audi A6
Auto-Audi-Audi xx
Auto-Opel-Corsa
etc.

Das geht meines Wissens nicht und steht auch nicht im Skript und das weder mit Klassen und erst recht nicht mit Objekten 😉.

Gruß Auge und viel Ero
 
Objekte können nicht vererben
Aber Klassen können an Unterklassen vererben, die wiederum vererben können.
Also um bei deinem Beispiel zu bleiben
Die Vererbungskette Auto-Audi-Audi A6 ist durchaus möglich und es ist gar nicht unrealistisch das solche "Vererbungsketten" entstehen. Nur eben mit Klassen und nicht mit Objekten.
 
Ich glaube es geht hauptsächlich darum das Objekte per se nicht vereerben können. Klassen können erben und vererben. Objekte sind instanzen der Klassen.

Stell dir das wie eine Backform vor. Die Klasse (backform) gibt vor, wie der Kuchen aussehen muss, welche Eigenschaften und Funktionen er hat.

Wenn du ihn bäckst entsteht ein Objekt.


Ein Bild sagt mehr als 1000 Worte ^^:
https://www.der-wirtschaftsingenieur.de/bilder/it/klassendiagramm1.PNG

das ist ein KLASSENDIAGRAMM !!!

Objekte sind die instanz von klassen und können nicht vererben oder erben.
 
Denn wenn einer Eigenschaften geerbt hat muss er bereits Unterklasse sein.
Da wird also behauptet, dass eine ganze Vererbungskette möglich sei:
Auto-Audi-Audi A6
Auto-Audi-Audi xx
Auto-Opel-Corsa
etc.

Das geht meines Wissens nicht und steht auch nicht im Skript und das weder mit Klassen und erst recht nicht mit Objekten 😉.

Aber Hallo! Das ist so falsch, und ich meine auch, dass es im Skript ganz gut erklärt war.

Du hast bei der OOP teilweise Vererbungsketten über Dutzend(e) Klassen und Unterklassen, und kannst die auch immer noch weitervererben.

Ein Objekt ist immer eine Instanz einer Klasse, also etwas, was nach diesem Bauplan gebaut wurde. Dann ist Ende. Ein Objekt kann an keine Klasse und an kein Objekt irgendetwas weitervererben.

Wenn du einen AudiA4-Bauplan hast und einen davon baust, und dann gefallen dir die Felgen nicht und du machst andere rein (... die es in keinem anderen Bauplan bislang gibt...) dann hat dein ganz konkreter A4 eine Eigenschaft, die nicht vererbbar ist.

Wenn jetzt jemand anders die gleichen Felgen an seinem A4 haben möchte, dann gibt es den Bauplan nicht.

In der Praxis kann man Objekt-Eigenschaften in einen Bauplan extrahieren und daraus eine neue Klasse bilden von der dann auch Instanzen(Objekte) erzeugt werden können. Das ist aber streng wissenschaftlich gesehen natürlich nicht dasselbe, als würde dein A4 irgendwas an andere noch zu bauende A4s vererben.

Hoffe, das hilft noch jemandem
 
Oben