「final修飾子」で宣言されたクラスの派生クラスは定義できなくなり、また「final修飾子」で宣言されたメソッドはオーバーライドできなくなる。
▼結果
/demo/final.html
<pre>
<?php
class BASE{
public function normal_method(){
//
}
#メソッドを「final」宣言
final public function final_method(){
//
}
}
#クラスを「final」宣言
final class SUB extends BASE{
public function normal_method(){
}
#「final」宣言されたメソッドをオーバーライドする
/*
public function final_method(){//Fatal error: Cannot override final method BASE::final_method()
}
*/
}
#「final」宣言されたクラスを継承する
/*
class C1 extends SUB{//Fatal error: Class C1 may not inherit from final class (SUB)
}
*/
?>
</pre>
▼結果
/demo/final.html