1. Wale und Kühe
Hier ist eine interessante zoologische Tatsache: Eine Kuh ist einem Wal viel näher als beispielsweise einem Nilpferd. Es stellt sich heraus, dass Kühe und Wale relativ nahe Verwandte sind.
Schau hier. Lassen Sie uns etwas über Polymorphismus erzählen – ein weiteres sehr leistungsfähiges Werkzeug von OOP . Es verfügt über vier Funktionen.
2. Vererbung ist kein Allheilmittel
Stellen Sie sich vor, Sie haben eine Cow
Klasse für ein Spiel geschrieben. Es gibt viele Felder und Methoden. Objekte dieser Klasse können verschiedene Dinge tun: gehen, essen und schlafen. Kühe tragen auch eine Glocke, die beim Gehen klingelt. Angenommen, Sie haben alles in der Klasse bis ins kleinste Detail umgesetzt.
Und dann kommt Ihre Kundin und sagt, sie möchte ein neues Spiellevel veröffentlichen, in dem die gesamte Action auf See stattfindet und die Hauptfigur ein Wal ist.
Sie beginnen mit dem Entwurf einer Klasse und stellen fest, dass sie sich nur geringfügig von der Klasse Whale
unterscheidet . Cow
Die Logik beider Klassen ist sehr ähnlich und Sie entscheiden sich für die Vererbung.
Die Cow
Klasse eignet sich ideal, um die Rolle der Mutterklasse zu übernehmen: Sie verfügt über alle notwendigen Variablen und Methoden. Alles, was wir tun müssen, ist, dem Wal die Fähigkeit zu geben, zu schwimmen. Aber es gibt ein Problem: Ihr Wal hat Beine, Hörner und eine Glocke. Schließlich ist diese Funktionalität innerhalb der Cow
Klasse implementiert. Was kann man hier tun?
3. Methodenüberschreibung
Das Überschreiben von Methoden kommt uns zu Hilfe. Wenn wir eine Methode geerbt haben, die in unserer neuen Klasse nicht ganz das tut, was wir wollen, können wir diese Methode durch eine andere ersetzen.
Wie wird das gemacht? In unserer Nachkommenklasse deklarieren wir dieselbe Methode wie die Methode der Elternklasse, die wir überschreiben möchten. Darin schreiben wir unseren neuen Code. Und das ist alles – es ist, als ob die alte Methode in der übergeordneten Klasse einfach nicht existiert.
So funktioniert es:
Code | Beschreibung |
---|---|
|
|
|
Dieser Code zeigt den folgenden Text auf dem Bildschirm an:
|
|
Dieser Code zeigt Folgendes auf dem Bildschirm an:
|
Nach dem Erben der Cow
Klasse und dem Überschreiben der printName
Methode Whale
enthält die Klasse tatsächlich die folgenden Daten und Methoden:
|
Wir kennen keine alte Methode. |
GO TO FULL VERSION