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

PHP: Objektorientierte Programmierung

Methoden, Eigenschaften und Konstanten übergeben

Testen Sie unsere 2019 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Es können Eigenschaften, Methoden und Konstanten in einer Kindklasse mit neuen Werten befüllt werden. In diesen Fällen werden die Ursprungswerte überschrieben.
06:37

Transkript

Gelegentlich macht es Sinn, wenn eine Kindklasse eine leicht andere Arbeitsweise hat als die Elternklasse. Um das zu erreichen, kann man Methoden und Eigenschaften, sogar Konstanten überschreiben, das heißt, man deklariert sie neu. Sollte ich also eine Eigenschaft in einer Kindklasse überschreiben wollen, muss ich eine Eigenschaft deklarieren, die denselben Namen trägt wie eben in der Elternklasse. Sehen wir uns zuallererst mal die Elternklasse selbst an. Ich habe in dieser Elternklasse eine Konstante, die ich mir dann später einfach ausgeben lasse, hier unten, dann habe ich zwei Eigenschaften, das eine $classType, das andere myArg, wobei myArg bereits mit einer Zeichenkette gefüllt ist, während ich mit Hilfe der Konstruktor-Methode hier dafür sorge, dass beim Initiieren $classType mit einem Wert befüllt werden soll. Und mit dieser Methode hier lasse ich mir dann eben meine Eigenschaften ausgeben, oder sorge dafür, dass meine Eigenschaften ausgegeben werden können. Sehen wir uns das Ganze in instanziierter Form an, hier habe ich jetzt also mein neues Objekt New Eltern, ich habe hier als Wert Ursprung übergeben, und bekomme meine Ausgabe, wie die Ausgabe ausschaut, sehen Sie hier. Ursprung als mitgegebener Wert, "Ich bin ein Elternteil" als diese fixe Zeichenkette, und zuletzt noch meine Konstante, nämlich mein Wert besteht. Wenn ich hier also meine Kindklasse habe, und ich möchte meiner Kindklasse eine der Eigenschaften überschreiben, dann - mache ich das, indem ich einfach denselben Namen vergebe, nur eben mit einem anderen Wert befülle. Hier habe ich jetzt meine protected $myArg also genau dasselbe wie hier oben, und - "Ich habe meinen Elternwert überschrieben" damit das gut sichtbar ist. Und dann kann ich eigentlich hier die Instanziierung fast gänzlich übernehmen, mit Strg+C kopiere ich es, und werde es hier unten mit Strg+V wieder einführen. Das Einzige, was hier anders ist, ist, dass natürlich meine Klasse anders heißt, nämlich ExtName, und dass ich hier einen anderen Wert mitgeben werde, ich werde nämlich hier sagen, Erweitert - gut. Mit Strg+S speichere ich das Ganze, und hier mit einem Neuladen der Seite sehen Sie, dass jetzt das Ganze funktioniert hat. Ich habe einerseits den Wert passend überschrieben, weil ich ja durchs Instanziieren einen neuen Wert mitgeben konnte, habe aber auch mein zweites Argument mit einem neuen Wert versehen können, und in dem Fall habe ich es einfach tatsächlich überschrieben. Die Konstante, nicht neu irgendwie deklariert, bleibt gleich. Was zu beachten ist, ist die Sichtbarkeit. Wenn ich nämlich hier bei meiner Ursprungsklasse als Sichtbarkeitstyp protected verwendet habe, dann kann ich bei einem Überschreiben nicht mit einem noch restriktiveren Sichtbarkeitsmodus arbeiten. Ich kann also hier nicht sagen, dass es jetzt eine private-Methode werden soll. Wenn ich das probiere, indem ich es jetzt speichere, und neu ausfüllen lasse, bekomme ich eben eine Fehlermeldung. Das heißt, ich muss auf die Sichtbarkeit achten, und sie kann höchstens weniger restriktiv sein. Wenn ich da jetzt sage public, Strg+S speichere, die Seite neu lade, dann bekomme ich keine Fehlermeldung, und natürlich, wenn die Sichtbarkeit gleich bliebe, wäre auch alles gut. Ganz analog dazu funktioniert das auch mit dem Überschreiben von Methoden. Sie müssen nur darauf achten, dass Sie bei der neuen Methode die gleiche Anzahl an Argumenten verwenden wie in der Ursprungsmethode. Nur innerhalb einer Konstruktor-Methode sieht es ein bisschen anders aus, da können Sie mehr oder weniger Argumente deklarieren. Sehen wir uns also an, wie das Ganze jetzt mit einer Konstanten funktioniert, und wenn ich eine Konstante überschreiben möchte, funktioniert das ziemlich ähnlich, ich brauche denselben Namen, also meine Konstante soll IMMER heißen, mit Strg+C kopiere ich sie mir mal hier in meine erweiterte Klasse, und werde hier einen neuen Wert eintragen, nämlich: "Ich habe meinen Wert überschrieben" So, wenn ich jetzt speichere und das Ganze neu lade, passiert noch gar nichts, denn nur die Konstante hier neu zu definieren, reicht nicht, sondern ich muss genauso die Funktion jetzt mitnehmen, mit der ich hier ursprünglich auf meine Konstante zugegriffen habe, mit Strg+C kopiere ich sie, und setze sie hier mit Strg+V wieder ein, speichere das Ganze, lasse es neu laden, und jetzt funktioniert auch das Überschreiben der Konstante. Das heißt, ich kann auch Konstanten überschreiben, genauso wie Methoden und auch Eigenschaften, bei den Eigenschaften ist es so, dass ich dieselbe Bezeichnung für die Eigenschaft nehmen muss, um sie dann überschreiben zu können, bei einer Konstanten reicht es nicht, nur die Eigenschaft selbst zu überschreiben, sondern ich muss sie auch mit dem Rückgabewert neu definieren, und bei einer Methode ist es so, dass Sie natürlich auch denselben Methodennamen verwenden müssen, aber bei den Argumenten darauf achten müssen, dass Sie dieselbe Anzahl Argumente verwenden.

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!