Hallo liebe Community!
Dies ist mein erstes Tutorial also seit nicht zu streng mit der Kritik, über Verbesserungsvorschläge würde ich mich dennoch freuen!
Ich setze voraus, dass man weiß wie Funktionen geschrieben werden und dass man mit Variablen umgehen kann. Außerdem sollte man folgende Parts meines Tutorials gelesen haben:
Dieser Part behandelt die Vererbung nochmal genauer.
Was ist wenn nun mal etwas NICHT von der Kindklasse geändert werden soll?? Das keyword ist final. Eine Methode die mit final definiert wurde kann nicht nach der vererbung überschrieben werden. Man darf also in der Kindklasse keine Methode mit dem gleichen Namen definieren. Es können auch Klassen als final definiert werden, dann darf keine Klasse von dieser Klasse erben. Ich glaube das Beispiel aus dem PHP Manual sagt den Rest:
Alles anzeigen
Das final keyword wird mit PHP 5 eingeführt und ist voher nicht verfügbar!
n0x-f0x
Dies ist mein erstes Tutorial also seit nicht zu streng mit der Kritik, über Verbesserungsvorschläge würde ich mich dennoch freuen!
Ich setze voraus, dass man weiß wie Funktionen geschrieben werden und dass man mit Variablen umgehen kann. Außerdem sollte man folgende Parts meines Tutorials gelesen haben:
- [wiki]OOP Objektorientierte Programmierung in PHP - Part 1[/wiki]
- [wiki]OOP Objektorientierte Programmierung in PHP - Part 2[/wiki]
- [wiki]OOP Objektorientierte Programmierung in PHP - Part 3[/wiki]
- [wiki]OOP Objektorientierte Programmierung in PHP - Part 4[/wiki]
- [wiki]OOP Objektorientierte Programmierung in PHP - Part 5[/wiki]
- [wiki]OOP Objektorientierte Programmierung in PHP - Part 6[/wiki]
Dieser Part behandelt die Vererbung nochmal genauer.
Was ist wenn nun mal etwas NICHT von der Kindklasse geändert werden soll?? Das keyword ist final. Eine Methode die mit final definiert wurde kann nicht nach der vererbung überschrieben werden. Man darf also in der Kindklasse keine Methode mit dem gleichen Namen definieren. Es können auch Klassen als final definiert werden, dann darf keine Klasse von dieser Klasse erben. Ich glaube das Beispiel aus dem PHP Manual sagt den Rest:
Quellcode
- <?php
- class BaseClass {
- public function test() {
- echo "BaseClass::test() aufgerufen\n";
- }
- final public function moreTesting() {
- echo "BaseClass::moreTesting() aufgerufen\n";
- }
- }
- class ChildClass extends BaseClass {
- public function moreTesting() {
- echo "ChildClass::moreTesting() aufgerufen\n";
- }
- }
- // Erzeugt einen fatalen Fehler: Cannot override final method BaseClass::moreTesting()
- ?>
- <?php
- final class BaseClass {
- public function test() {
- echo "BaseClass::test() aufgerufen\n";
- }
- // Es macht hier keinen Unterschied, ob die Methode final ist oder nicht
- final public function moreTesting() {
- echo "BaseClass::moreTesting() aufgerufen\n";
- }
- }
- class ChildClass extends BaseClass {
- }
- // Erzeugt einen fatalen Fehler: Class ChildClass may not inherit from final class (BaseClass)
- ?>
Das final keyword wird mit PHP 5 eingeführt und ist voher nicht verfügbar!
n0x-f0x
9.494 mal gelesen