PHP: Objektorientierte Programmierung

Konstruktoren bei der Vererbung

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Wenn eine Kindklasse eine eigene Konstruktormethode mitbringt, dann bleibt die Konstruktormethode der Elternklasse nicht automatisch erhalten.
05:13

Transkript

Jetzt möchte ich Ihnen zeigen, wie die Konstruktor-Methode bei Vererbung funktioniert. Solange eine Kindklasse die Konstruktor-Methode von der Elternklasse übernimmt, ist alles gut. Ich habe also hier jetzt eine Kindklasse wieder mit Painter, habe jetzt aber noch einen kleinen Zusatz nämlich das Material, dass er verwendet, und habe hier eine weitere Methode, nämlich worksWith und lasse mir hier dann ausgeben mit welchem Material er arbeitet. So weit alles gut. Wenn ich mir das Ergebnis anschaue, dann sehe ich, dass ich hier mit dem Aufruf meiner Elternklasse Rembrand habe, und ich sehe auch das Rembrand der Allerbeste ist, und wenn ich jetzt in der Kindklasse den Namen Klee übergebe, dann ist Klee der Allerbeste und Klee arbeitet mit Holz. Soweit funktioniert also diese Methode ganz gut. Was aber passiert, wenn ich für die Kindklasse eine eigene Konstruktor-Methode haben möchte? Ich werde jetzt einfach hier das protected $material nicht gleich initialisieren, sondern ich möchte dass hier die Initialisierung eben über eine Konstruktor-Methode passiert. Das heißt, ich sage public function _construct und hier möchte ich jetzt haben, ($mat) - für mein Material. So, und jetzt sage ich dieses klassische $this- material = "$ mat"; So. Und jetzt gehe ich eben davon aus, dass mein Name vielleicht übernommen wird, und ich einfach nur meinen zweiten Konstruktor hinterhersetzen muss. Also, "Klee" lasse ich und als zweiten eigenen Konstruktor würde ich jetzt sagen, ich brauche stattdessen, für ihn "Leinwand". Und ich erhoffe mir, dass jetzt hier der Name Klee übernommen wird, und hier das Material eingefügt wird. Schauen wir mal was passiert, wenn ich mit dieser Hoffnung arbeite, dass ich nämlich glaube, dass dann die Konstruktor-Methode aus der Elternklasse sehr wohl noch zum Tragen kommt, und die Konstruktor-Methode der Kindklasse einfach dazu gebaut wird. Wenn ich mir das jetzt ausgeben lasse, merke ich, dass ich zwar keine Fehlermeldung bekomme, aber es ist hier so, dass plötzlich Klee nicht mehr der Name ist, sondern Klee bekommt eben durch diese neue Konstruktor-Methode gleich das Material zugewiesen. Und auch die untere Methode arbeitet, Name wird einfach übergangen, aber, arbeitet mit Klee, funktioniert. Wie gehe ich also vor, wenn ich die Konstruktor-Methode aus der Elternklasse mitübernehmen möchte, und dann meine eigene Konstruktor-Methode noch dazufügen möchte? Um das umsetzen zu können, muss sich ich auch in der Kindklasse den Konstruktor der Elternklasse mit übernehmen, was aber eigentlich überhaupt kein Problem ist. Und zwar, ich ergänze hier meine Konstruktor Funktion, ich möchte zuerst den $name ausgegeben bekommen, und dann mein $mat, und ich kann auf die Konstruktor-Methode der Elternklasse zugreifen wieder, entweder ich gebe direkt die Elternklasse mit Namen an, oder ich verwende wieder parent, diesen Operator und dann dessen construct mit $name. So - und wenn ich jetzt hier noch am Ende einen Strichpunkt setze, dann sollte das Ganze jetzt ganz gut funktionieren, ich speichere also noch mal, und sehe mir das Ergebnis jetzt in meinem Browser an und ja, jetzt funktioniert es. Das heißt, ich kann nicht davon ausgehen, dass automatisch die Konstruktor-Methode von der Elternklasse in die Kindklasse übernommen wird, wenn es in der Kindklasse eine eigene Konstruktor-Methode gibt. Ich kann aber sehr wohl, die Konstruktor-Methode aus der Elternklasse in die Kindklasse übernehmen, und damit gemeinsam einsetzen.

PHP: Objektorientierte Programmierung

Lernen Sie alle Aspekte kennen, die bei der Umsetzung des OOP-Programmierstils in PHP eine Rolle spielen.

2 Std. 32 min (34 Videos)
Derzeit sind keine Feedbacks vorhanden...
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:23.09.2016

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!