PHP 5 fügt ein neues finales Schlüsselwort hinzu. Wenn eine Methode in der übergeordneten Klasse als endgültig deklariert wird, kann die untergeordnete Klasse die Methode nicht überschreiben. Wenn eine Klasse als final deklariert ist, kann sie nicht vererbt werden.
Beispiel Nr. 1 Beispiel für eine endgültige Methode
class BaseClass { public function test(){ echo "BaseClass::test() called<br>"; } final public function moreTesting(){ echo "BaseClass::moreTesting() called<br>"; } } class ChildClass extends BaseClass { public function moreTesting(){ echo "BaseClass::moreTeing called<br>"; } }
Beispiel Nr. 2 Beispiel für eine endgültige Klasse
final class BaseClass{ public function test(){ echo "BaseClass::test() called\n"; } //这里无论你是否将方法声明为final,都没有关系 final public function moreTesting(){ echo "BaseClass::moreTesting() called\n"; } } class ChildClass extends BaseClass{} //产生Fatal Error:Class ChildClass may not inherit from final class (BaseClass)
Hinweis: Eigenschaften können nicht als endgültig definiert werden, sondern nur Klassen und Methoden ist als endgültig definiert.