Skip to main content

Der Grund, warum Vererbung in Java Programmen so wichtig ist


java programmierung vererbung warum

„Manchmal findet Java Vererbung auch zwischen Einkaufstüten und Polizeiautos statt“

Irrer Titel, oder?

Aber mal Hand aufs Herz.
Was haben eigentlich eine Einkaufstüte und ein Polizeiwagen gemeinsam?

Ich verrate dir etwas:

Du kannst die Verbindung nicht erkennen, denn ich habe dir nicht alles verraten.

Es fehlt noch ein wichtiger Aspekt – eine Verbindung zwischen beiden.

Und zwar.
Ein ausgewachsener Mann im Rentierkostüm.


Und macht es jetzt Klick?

Bei der Java Vererbung geht es um die Vermeidung von doppelten Code.

Spaß beiseite.

Stell dir einmal vor:

  • Du entwirfst ein Java Programm.
  • Und in diesem Programm gibt es Figuren – einfache 2D-Figuren.
  • Diese Figuren sind dann eine Einkaufstüte, ein Polizeiauto und das Rentier.

Alle Figuren sollen lediglich rotieren.
Mehr sollen diese Figuren nicht tun.


Natürlich könntest du jetzt drei Klassen anbieten und in jeder Klasse eine separate rotieren-Methode.
Java-Vererbung-doppelten-Code-vermeiden

Oder du erstellst eine Klasse, welche diese eine Methode anbietet.
Und alle anderen Klassen erben diese Methode von der Superklasse.
Java-Vererbung-Methode-Beispiel-rotieren

Vererbung findet immer dort statt, wo Objekte das Gleiche tun müssen.

Stichwort ist redundanter Code.
Und dieser redundante oder doppelte Code ist etwas sehr schlechtes.

Denn nehmen wir einmal an.
Irgendwann sagst du: „Dieses Rotationsprogramm ist mir zu langweilig.
Ich möchte, dass die Figuren beim Rotieren auch noch Aufblinken.“

Ohne Vererbung müsstest du in alle drei Klassen eine aufblinken()-Methode hinzufügen.
Mit Vererbung gehst du in die Superklasse, schreibst einmal die aufblinken()-Methode hinein und schon blinken alle deine Figuren beim Rotieren auf.

Java-Vererbung-blinken-Methode

Gelb ist nicht ganz dein Geschmack, oder?
Du möchtest vielleicht noch, die Aufblinkfarbe von Gelb in Grün abändern.
Na klar, also nochmal rein in die Superklasse.
Einmalig die Aufblinkmethode abändern.
Und schon blinken alle Figuren grün statt gelb.

Kurzum:
Vererbung macht dir das Leben als Entwickler extrem einfach.
Der Code ist leichter zu erstellen und vor allen Dingen besser zu warten.

Vererbung folgt immer dem IST-ES-Prinzip.

Du solltest dich bei jeder Klasse, welche du in eine Vererbungslinie setzen möchtest immer fragen:

„Ist dieses Objekt ein spezielleres Objekt der Superklasse?“

Am Beispiel der rotierenden Figuren fragst du dann:

  • Ist das Polizeiauto eine rotierende Figur? – Ja in diesem „Rotieren-Programm“ schon.
  • Und sind die Einkaufstüte und das Rentier ebenfalls rotierende Figuren?- Für dieses Rotieren-Programm kannst du dies ebenfalls bejahen.

Somit können alle drei Klassen von der Superklasse „Rotierende Figuren“ sorglos erben.

Natürlich muss zur Vererbung immer der Kontext passen.

Das Konzept macht nur Sinn, wenn es auch wirklich in das Programm passt.
Schau dir dieses Bild einmal an.


Dies könnte ein Rennsimulator sein.
Der Mann im Rentierkostüm ist jetzt als Zuschauer des Rennens geplant.

Meine Frage an Dich:
Können in dieser Rennsimulation das Rennauto und das Rentier eine Vererbungslinie bilden?

Na was denkst du?
Das Auto kann sich überschlagen (rotieren) und der Mann ebenfalls.

Es gibt also Gemeinsamkeiten.
Macht Vererbung hier Sinn?

Nein natürlich nicht.
Denn wie soll die Superklasse heißen?
Der Name „Rotierende Figuren“ passt hier nicht mehr.
Denn das eine Objekt ist ein Rennauto, welches fahren, lenken, beschleunigen auch noch zufällig rotieren kann.
Und das andere Objekt wäre ein Zuschauer, welcher winken, sich freuen, lächeln auch noch rotieren könnte.

Falls du beide in eine Vererbungslinie setzen würdest, könnte der Zuschauer ebenfalls beschleunigen, lenken usw.
Und das Auto könnte winken und lächeln.

Also absoluter Blödsinn in so einem Programm.
Mit der „IST-ES-EIN-Frage“ kommst du auf jeden Fall darauf:

  • Ist der Zuschauer ein Auto? – Blödsinn
  • Ist das Auto ein Zuschauer – ebenfalls Schwachsinn.

Es gibt in so einem Programm keine gemeinsame Vererbungslinie, obwohl beide Objekte vielleicht die gleiche Methode haben. (Möglichkeit zum Rotieren)

Zusammenfassung:

  • Durch die Java Vererbung vermeidest du doppelten und redundanten Code.
  • Deshalb solltest du schauen, ob es Sinn macht – verschiedene Objekte bzw. Klassen in einer Vererbungslinie zu vereinen.
  • Dabei ist die Sinnhaftigkeit der Vererbung von Programm zu Programm vollkommen unterschiedlich.
  • Und deshalb solltest du immer dein Klassen Vererbungskonzept nach dem „IST-ES-EIN-Prinzip“ prüfen.

Über den Autor

wissen
Folge Sciodoo und bleibe stets auf dem Laufenden. Schließ dich uns an und abonniere unseren Instagram-Kanal ein. Wir stellen täglich neue Artikel für dich rein.
Weiter zum Kanal>>>
     

Ähnliche Beiträge