子クラスを作れないようにするには、親クラスを定義するときに、final
キーワードを前に付け、finalクラスにする。
finalクラスを拡張し、子クラスを作ろうとすると、エラーとなる。
final
キーワードを付けられるのは、メソッドとクラス。プロパティには、final
キーワードを付けられない。
書式
final class クラス名 // クラスを定義
{
function メソッド名() { // finalメソッドを定義
メソッド内処理文;
}
}
{
function メソッド名() { // finalメソッドを定義
メソッド内処理文;
}
}
サンプル
「taxClass5」クラスは、finalクラスなので、子クラスを作れない。
<?php
final class taxClass5
{
function func_tax( $var ) {
return $var * ( 1 + 0.05 );
}
function func_echo( $var ) {
echo '税込:' . $this->func_tax( $var ) . '円<br />';
}
}
$var_class = new taxClass5();
$var_class->func_echo( 100 );
?>
final class taxClass5
{
function func_tax( $var ) {
return $var * ( 1 + 0.05 );
}
function func_echo( $var ) {
echo '税込:' . $this->func_tax( $var ) . '円<br />';
}
}
$var_class = new taxClass5();
$var_class->func_echo( 100 );
?>
↓↓↓出力結果↓↓↓
税込:105円