PHP 5 では、新しい Final キーワードが追加されています。親クラスのメソッドがfinalと宣言されている場合、子クラスはそのメソッドをオーバーライドできません。クラスがfinalと宣言されている場合、そのクラスを継承することはできません。
例 #1 最後のメソッドの例
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>"; } }
例 #2 最後のクラスの例
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)
注: プロパティを Final として定義することはできません。final として定義できるのはクラスとメソッドのみです。