他のクラスのプロパティとメソッドを継承するには、「extends」キーワードを使う。
複数のクラスから継承することはできない。
書式
class クラスA // クラスを定義
{
public $プロパティ名 = 値; // プロパティを定義
function メソッド名() { // メソッドを定義
メソッド内処理文;
}
}
class クラスB extends クラスA // クラスAを継承し、クラスBを定義
{
function メソッドB() { // メソッドを定義
$this->プロパティ名; // 親クラスである「クラスA」の「プロパティ名」のプロパティへアクセス
$this->メソッド名(); // 親クラスである「クラスA」の「メソッド名」のメソッドを呼び出す
}
}
{
public $プロパティ名 = 値; // プロパティを定義
function メソッド名() { // メソッドを定義
メソッド内処理文;
}
}
class クラスB extends クラスA // クラスAを継承し、クラスBを定義
{
function メソッドB() { // メソッドを定義
$this->プロパティ名; // 親クラスである「クラスA」の「プロパティ名」のプロパティへアクセス
$this->メソッド名(); // 親クラスである「クラスA」の「メソッド名」のメソッドを呼び出す
}
}
クラスAのプロパティとメソッドを、クラスBは継承する。
クラスAは、クラスBの親クラス(基底クラス、スーパークラス)となる。
クラスBは、クラスAの子クラス(派生クラス、サブクラス)となる。
サンプル
<?php
class taxClass
{
public $varTax = 0.05;
function func_tax( $var ) {
return $var * ( 1 + $this->varTax );
}
}
class echoTaxClass extends taxClass
{
function func_echo( $var ) {
echo '税込:' . $this->func_tax( $var ) . '円<br />';
echo '税率:' . $this->varTax * 100 . '%<br />';
}
}
$var_class = new echoTaxClass();
$var_class->func_echo( 100 );
?>
class taxClass
{
public $varTax = 0.05;
function func_tax( $var ) {
return $var * ( 1 + $this->varTax );
}
}
class echoTaxClass extends taxClass
{
function func_echo( $var ) {
echo '税込:' . $this->func_tax( $var ) . '円<br />';
echo '税率:' . $this->varTax * 100 . '%<br />';
}
}
$var_class = new echoTaxClass();
$var_class->func_echo( 100 );
?>
↓↓↓出力結果↓↓↓
税込:105円
税率:5%
税率:5%