Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Grundlagen der Programmierung: Objektorientiertes Design

Methoden vererben

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Methoden können durch das Konzept der Vererbung von einer Klasse auf eine andere übertragen werden. Dadurch bleibt der Quellcode einer Anwendung äußerst übersichtlich.

Transkript

Vererbung beschreibt ein "ist-ein-Verhältnis". Was bedeutet das genau? Gehen wir mal die Zeilen der Reihe nach durch. Wir kennen dieses Konzept Vererbung aus dem tagtäglichen Leben. Ein Auto ist ein Fahrzeug. Ein Bus ist ein Fahrzeug. Das bedeutet nichts anderes, als dass die Objekte Auto und Bus von der übergeordneten Klasse Fahrzeug, Dinge erben. Also zum Beispiel, es gibt einen Motor, man kann ein Fahrzeug starten, man kann mit einem Fahrzeug einen Unfall bauen usw. Ein Auto ist ein Bus. Da merken Sie, da funktioniert irgendwas nicht, das heißt, das ist keine klassische Vererbungssituation. Man könnte mit etwas Fantasie sagen, Auto und Bus, das sind Geschwister und die gehören zu den Eltern Fahrzeug. Ein anderes Beispiel, ein Mitarbeiter ist eine Person. Jawohl, ein Kunde ist auch eine Person. Das heißt, sowohl Mitarbeiter als auch Kunde, die erben von der Klasse Personen. Ein Kunde ist ein Warenkorb. Ja, da funktioniert irgendwas nicht. Man kann es nicht nur mit ist ein beschreiben, sondern ist eine Art, also ein Girokonto ist eine Art Bankkonto. Da sehen wir ganz klassisch, hier handelt es sich um eine Vererbungssituation genauso wie ein Sparkonto ist eine Art Bankkonto. Und man kann das Ganze auch noch weiterführen, nämlich ein Prius ist ein Auto, ist ein Fahrzeug. Das heißt, Fahrzeug vererbt ans Auto und Auto vererbt dann an den Prius. Ein Bernhardiner ist ein Hund, ist ein Säugetier, ist ein Tier. Hier haben wir eine Vererbung über mehrere Stufen hinweg, aber Achtung, das ist keine Mehrfachvererbung. Mehrfachvererbung würde ja bedeuten, dass eine Klasse von verschiedenen Eltern etwas erben kann, aber hier geht es ja darum, dass jede Klasse immer genau eine Elternklasse hat. Also ein Bernhardiner ist genau ein Hund, ist genau ein Säugetier, ist genau ein Tier. Und eben nicht, ein Bernhardiner ist ein Hund und gleichzeitig auch noch ein Vogel oder sowas. Das wäre was völlig anderes. Hier ist es jetzt relativ einfach, diese Vererbung zu erkennen, aber schauen uns mal an, wie das in einem konkreten Beispiel ausschaut. Ich habe hier mehrere Objekte. Ich habe hier den Kunden, die Bank, den Manager, Girokonto, Bankkonto, Sparkonto und einen Teller. Und wie kriegen wir jetzt raus, wer von wem erbt? Also zunächst mal schauen wir, gibt es irgendwo Gemeinsamkeiten? Wir haben jetzt Bank und Bankkonto. Und da könnte man sagen, Mensch, vererbt denn eigentlich die Bank an das Bankkonto Eigenschaften? Wenn wir uns das jetzt konkret anschauen, dann sehen wir, das eine hat mit dem anderen zwar irgendwas zu tun, ein Bankkonto gehört natürlich zu einer Bank, aber die Eigenschaften sind etwas völlig anderes. Das heißt, ein Bankkonto, das erbt nicht von einer Bank. Diese Beziehung, die da dahinter steckt, die schauen uns später an. Also das ist keine Vererbung, sondern vielmehr sehen wir hier ein Girokonto, ein Bankkonto und ein Sparkonto. Das ist so eine Vererbungssituation wo wir sagen, es gibt gemeinsame Attribute, es gibt gemeinsame Methoden wie zum Beispiel ein Eröffnungsdatum oder man kann auf ein Bankkonto einzahlen oder davon abheben. Das Gleiche kann man auch von dem Girokonto und von dem Sparkonto machen, nur die Details, die sind dann etwas unterschiedlich. Und die eigentliche Vererbungssituation, die liegt hier zwischen diesen verschiedenen Kontoarten vor und nicht zwischen Bank und Bankkonto. Wie schaut das Ganze jetzt in UML aus? Ich habe hier mal eine Vererbungssituation in einem UML Diagramm. Wir haben hier oben ein Objekt Produkt in dem Fall. Dieses Objekt Produkt hat einen Titel und einen Preis und man kann das Produkt kaufen oder auch herunterladen. Und ich habe hier unten verschiedene andere Objekte wie eine CD, ein Buch, einen Film. Auch die haben alle einen Titel und einen Preis und die haben auch die Attribute Kaufen und Downloaden. Das ist alles gleich. Worin sich diese Objekt unterscheiden ist allerdings beim Künstler einer CD, ein Buch hat keinen Künstler, sondern einen Autor und ein Film hat einen Regisseur. Und dargestellt wird das Ganze mit einem Pfeil hin zum Eltern Objekt. Das heißt, von Produkt erben diese unteren Produkte, CD, Buch und Film, jeweils den Titel und den Preis auch Kaufen und Download, aber was zusätzlich hinzu kommt, was das Produkt hier oben nicht hat, das ist eben wer so ein Produkt erschaffen hat, der Künstler, der Autor oder der Regisseur. Dargestellt wird das Ganze mit einem Pfeil und mit dieser dreieckigen Pfeilspitze. Sehr wichtig, das ist ein Unterschied, ob Sie das Ganze nur mit einem einfachen Pfeil machen, also nur so oder ob Sie diese Pfeilspitze zu machen. Machen Sie die Pfeilspitze zu, nur dann ist es in einem UML Diagramm auch tatsächlich eine Vererbungssituation. Vererbung ist allgegenwärtig. Wenn Sie der Meinung sind, ja ich habe mit Vererbung eigentlich nichts zu tun, dann ist das wahrscheinlich nicht der Fall, denn wenn Sie zum Beispiel Java verwenden, dann verwenden Sie das Objekt FileDialog und dieses FileDialog hat automatisch unter der Haube von Dialog manche Eigenschaften und manche Attribute geerbt. Und ohne, dass Sie es wissen, Dialog erbt von der Klasse Window und die erbt von der Klasse Container, die von Component und alle gehen Sie auf das Objekt Object zurück. Das ist quasi die Mutter aller Objekte, was hier auch eine schöne Formulierung im Zusammenhang mit Vererbung ist. Vererbung drängt sich in vielen Fällen auf. Das heißt, Sie müssen gar nicht händeringend danach suchen, sondern wenn Sie Ihre Objekte aufzeichnen, zusammen gruppieren, dann werden Sie in vielen Fällen ganz leicht feststellen, welches Objekt zu welchem Objekt gehört und was von wem erbt.

Grundlagen der Programmierung: Objektorientiertes Design

Lernen Sie alle Grundbegriffe und Methoden von objektorientiertem Design kennen und holen Sie sich das Rüstzeug, um bald Ihre eigene Softwareprojekte zu starten.

2 Std. 43 min (45 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!