# Vererbungskette



## Abbadon (31. Aug 2009)

Ich weiss grde nid wohin mit dem Thema daher mal hier rein. 

Ich bin grade am versuchen ein UML Diagramm zu erstellen für eine Vererbungskette. 
Die frage die ich mir grade aber stelle ist das was ich mir darunter vorstelle auch genau diese art vererbungskette.
Also i stelle mir das so vor:
Die Obere klasse ist sagen wir Technik(Klasse A)
Dann erstelle ich eine zweite klasse nennen wir die mal Antrieb(klasse B) diese erbt von Technik
in dieser Klasse erstelle ich Modelle sagen wir MotorTechnik und DüsenTechnik.
Darauf hin erstell ich eine neue Klasse und nenne sie VerbrenungsMotor(Klasse C) diese erbt von der MotorTechnik
Und dann erstell ich eine letzte klasse 4Takter(Klasse D) dieser erbt von der VerbrennungsMotor klasse also (klasse C)

Alles in einem habe ich mir das dann so gedacht
Klasse A
Klasse B extends A
klasse C extends B
Klasse D extends C
Ist das nun eine Vererbunsgkette oder habe ich da iwie was falsches im gedächnis.

Und Wie kann ich das am besten in nem UML Diagramm darstellen?

Gruß Mike


----------



## maki (31. Aug 2009)

> Und Wie kann ich das am besten in nem UML Diagramm darstellen?


Am besten gibst du den Klassen sinnnvolle Namen(Englisch) und nicht nur kryptische Buchstaben in alphabetischer Reihenfolge.
Die Notation für Vererbung in UML Klassendiagrammen ist auch kein Geheimnis 

Ansonsten kannst du dir ja überlegen, ob Interfaces und abstrakte Klassen nicht besser geeignet wären anstatt Vererbungshierarchien von konkreten Klassen.


----------



## bygones (1. Sep 2009)

das Bsp klingt n bisschen nach "ich mach mal alles zu einer Klasse und stopfe es in einer Vererbungshierarchie"... 

Rule of Thumb: Vermeide Vererbung wann immer es geht - Delegation bzw Komposition sind (nahezu) immer vorzuziehen...


----------



## Landei (1. Sep 2009)

Gibt es irgendwas sinnvolles, was man in die in die Klasse "Technik" stopfen könnte? Wenn nicht, weglassen. Klassen sind nicht dafür da, damit man eine besonders hübsche Hierarchie hat, sondern um die problemrelevanten Teile der Realität möglichst gut abzubilden. "Überabstraktion" ist ein Antipattern.


----------



## ARadauer (1. Sep 2009)

> Vermeide Vererbung wann immer es geht - Delegation bzw Komposition sind (nahezu) immer vorzuziehen...


du sprichst mir aus dem Herzen...

wie man Vererbung in einem UML Klassendiagram darstellen kann war die Frage oder?
Unified Modeling Language ? Wikipedia Es ist dieser nicht ausgefüllte Pfeil der zur Oberklasse zeigt...


----------



## Abbadon (1. Sep 2009)

Dein Link ARadauer da sind ja UML Diagramm abgebildet ist das auch ne Vererbungskette?
Weil ich möchte ne Vererbunsgkette darstellen.

Das mit klasse a b c d war nur beispiele ob sich so eine Vererbungskette zusammen baut oder ob ich da iwie etwas vollkommen falsch verstehe.

Gruß Mike


----------



## bygones (1. Sep 2009)

beim ersten bild Kunde - Privat/Geschaeftskund... da siehst du es


----------



## Abbadon (1. Sep 2009)

Ah cool danke.
Jetzt weiss ich schonmal wenigstens wie das ausschaut. Danke euch vielmals


----------



## Abbadon (2. Sep 2009)

So ich habe nun mal ein Diagramm gebaut die frage ist ob es so auch eine vererbungskette von Klassen ist. 
Jede neue klasse erstellt spezielle Eigenschaften der vorherigen klasse. Alos verféinert es.


Die vererbung schaut so aus. Konto erbt von Bank, Dann ist das Konto eine spezielle Eigenschaft.
Kunde erbt von Konto, Somit wurde der Kunde Spezialisiert von dem Konto
PrivatKunde erbt von Kunde und der PrivatKunde ist nochmal eine Speziele Form des Kunden
Kann man das so lassen oder würdet ihr es noch anders machen?


----------



## faetzminator (2. Sep 2009)

Das ist aber überhaupt nicht objektorientiert... *Ist* der Kunde ein Konto? Nein. Lediglich PrivatKunde -> Kunde <- Geschäftskunde ist eine valide Vererbung in meinen Augen.


----------

