Jetzt lerne ich Java 6

Methoden überschreiben

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Nicht immer sind die Anforderungen an die Methoden bzw. deren Realisierungen in der erbenden Klasse genau so wie bei der übergeordneten. Dann ist es angenehm, dass man in Java neue Methoden erweitern kann und übergeordnete überschreiben.
04:38

Transkript

Wir sind mittlerweile glückliche Besitzer einer Fisch-Klasse. Mit Hilfe dieser Fisch-Klasse können wir - vieles geerbt aus Tier - Fische anlegen. Aber Fische haben natürlich jetzt noch andere Eigenschaften, als die, die wir in der Tier-Klasse bereits definiert haben: Name und Alter. Fische haben Flossen, Tiere nicht unbedingt. Daher gehört so eine Deklaration in die Fisch-Klasse hinein. Wir gehen jetzt hier also in den Kopf unserer Fisch-Klasse und setzen auch hier Eigenschaften. Und auch hier müssen wir jetzt nicht uns Gedanken darüber machen, dass wir vielleicht noch einmal die Eigenschaften haben und Alter anlegen. Denn die hat Fisch schon und zwar aus Tier, auch wenn wir sie hier noch nicht sehen. Wir geben jetzt also einen Integer an, den wir "flossen" nennen, und hier werden die Anzahl der Flossen erfasst. Und das soll sich natürlich nur auf Fische beziehen. Daher ist das "private". Und wie wir das gelernt haben, machen wir jetzt eine get-Methode: getFlossen. Das Ganze gibt einen Integer zurück und ist "public". Und wir bekommen dann eben die Anzahl der Flossen zurückgegeben. Genauso machen wir jetzt bei der public-Methode: setFlossen. Dass wir nachträglich die Flossenanzahl ändern können, wenn wir es leider müssen. Und setzen hier jetzt die Flossenzahl. So haben wir jetzt also das, was von Tier geerbt worden ist, entsprechend erweitert. So muss man home void daran setzen. Und Sie sehen, es ist relativ unkompliziert. Wie können wir jetzt jedoch das Ganze so gestalten, wie wir das gerne wollen? Denn wir haben hier noch Konstruktoren, die nicht ganz auf Fische passen. Auch diese sind überschreibbar. Wir haben die Möglichkeit Methoden und auch Eigenschaften nachträglich in abgeleiteten Klassen zu beschreiben. Das heißt, wir können nicht nur ergänzen, sondern auch etwas austauschen. Und das können wir zum Beispiel mit den Konstruktoren machen. Im Moment wird ein Konstruktor aus Tier verwendet und das wollen wir gar nicht. Das heißt, wir gehen jetzt hier zum Fischkonstruktor und er sagt hier: schön, ich bin ein Fisch!" Wir können aber auch noch einen weiteren Fischkonstruktor jetzt bilden, wenn zum Beispiel ein String übergeben wird. Denn dann wollen wir den Namen des Fisches direkt festlegen: String n. Und dann legen wir den Namen fest. Und jetzt können Sie sich überlegen: Hm… es gab ja schon mal in der Tier-Klasse einen Konstruktor, der so aussah. Es wird ein String n übergeben und dann wird entsprechend der Name belegt. Passt das oder passt das nicht für uns? Im Moment würden wir sagen: das passt, das Gleiche müssten wir hier tun. Dann können Sie hier sogar hingehen und hier das Schlüsselwort "super" mit runden Klammern angeben. Mit Hilfe dieses Methodenaufrufs "super" rufen Sie den Konstruktor der älteren Klasse auf. Und das ist Tier in diesem Fall. Da wir aber nicht den normalen Konstruktor aufrufen wollen, sondern dabei noch einen String übergeben wollen, schreiben wir diesen String hinein. Was an dieser Stelle in der Fisch-Klasse passiert, erruft zuerst in dieser Zeile nun… Die dehnt hier Klassenkonstruktor an dieser Stelle auf. Der ruft wiederum diesen Konstruktor aus, setzt sein Alter auf 0, schreit "Hallo Welt, ich lebe!", geht zurück, setzt den Namen. Dies mag am Anfang etwas kompliziert klingen, ist aber eine relativ einfache und sinnvolle Sache. Was wir jetzt hiermit erreicht haben, ist, dass wir zurückgehen können, hier in das Anlegen unserer Instanz Fisch b. Und wir können jetzt hier angeben, dass unser Fisch "Nemo" heißt. Und damit Nemo auch mal was sagen kann, lassen wir hier seinen Namen ausgeben. Wir gehen jetzt also auf: b.getName. Und getName gibt es eigentlich in der Fisch-Klasse erst einmal von uns definiert nicht. Aber das hat er ja geerbt von Tier. Also eine große Arbeitsersparnis. Hier haben wir noch ein kleines Problem. Wir haben hier noch ein + vergessen. Und dann lassen wir das mal kompilieren. Und das ist das Ergebnis. Wir sehen, dass wir ein "Hallo Welt, ich lebe!" bekommen und der Fisch ab diesem Zeitpunkt "Nemo" heißt.

Jetzt lerne ich Java 6

Steigen Sie ein in die Programmierung mit Java 6, lernen Sie die Grundlagen kennen und unternehmen Sie anschließend Ihre ersten Schritte in der objektorientierten Programmierung.

12 Std. 27 min (98 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!