親クラスから継承したメソッドをオーバーライド(再定義)するには、子クラス内で、継承したメソッドと同じメソッド名のメソッドを定義する。
書式
class クラスA // クラスを定義
{
function メソッド名() { // メソッドを定義
メソッド内処理文;
}
}
class クラスB extends クラスA // クラスAを継承し、クラスBを定義
{
function メソッド名() { // メソッドをオーバーライド(再定義)
メソッド内処理文;
}
}
{
function メソッド名() { // メソッドを定義
メソッド内処理文;
}
}
class クラスB extends クラスA // クラスAを継承し、クラスBを定義
{
function メソッド名() { // メソッドをオーバーライド(再定義)
メソッド内処理文;
}
}
サンプル
<?php
class taxClass5
{
function func_tax( $var ) {
return $var * ( 1 + 0.05 );
}
function func_echo( $var ) {
echo '税込:' . $this->func_tax( $var ) . '円<br />';
}
}
class taxClass7 extends taxClass5
{
function func_tax( $var ) {
return $var * ( 1 + 0.07 );
}
}
$var_class = new taxClass5();
$var_class->func_echo( 100 );
$var_class = new taxClass7();
$var_class->func_echo( 100 );
?>
class taxClass5
{
function func_tax( $var ) {
return $var * ( 1 + 0.05 );
}
function func_echo( $var ) {
echo '税込:' . $this->func_tax( $var ) . '円<br />';
}
}
class taxClass7 extends taxClass5
{
function func_tax( $var ) {
return $var * ( 1 + 0.07 );
}
}
$var_class = new taxClass5();
$var_class->func_echo( 100 );
$var_class = new taxClass7();
$var_class->func_echo( 100 );
?>
↓↓↓出力結果↓↓↓
税込:105円
税込:107円
税込:107円