インターフェイスの継承

インターフェイス(オブジェクト・インターフェイス)は、クラスと同様、extends演算子で継承できる。

書式

interface インターフェイスA // インターフェイスを定義
{
    public function メソッドA(); // あるクラスが実装する必要があるメソッドを宣言
}
interface インターフェイスB extends インターフェイスA // インターフェイスAを継承し、インターフェイスBを定義
{
    public function メソッドB(); // あるクラスが実装する必要があるメソッドを宣言
}
class クラスA implements インターフェイスA // クラスを定義
{
    public function メソッドA() { // 実装する必要があるメソッドAを定義
        // メソッド内処理文;
    }
}
class クラスB implements インターフェイスB // クラスを定義
{
    public function メソッドA() { // 実装する必要があるメソッドAを定義
        // メソッド内処理文;
    }
    public function メソッドB() { // 実装する必要があるメソッドBを定義
        // メソッド内処理文;
    }
}

サンプル

<?php
interface taxInterfaceA
{
    public function func_tax( $var );
}
interface taxInterfaceB extends taxInterfaceA
{
    public function func_echo( $var );
}
class taxClass5 implements taxInterfaceB
{
    public $varTax = 0.05;
    public function func_tax( $var ) {
        return $var * ( 1 + $this->varTax );
    }
    public function func_echo( $var ) {
        echo '税込:' . $this->func_tax( $var ) . '円<br />';
        echo '税率:' . $this->varTax * 100 . '%<br /><br />';
    }
}
class taxClass7 implements taxInterfaceB
{
    public $varTax = 0.07;
    public function func_tax( $var ) {
        return $var * ( 1 + $this->varTax );
    }
    public function func_echo( $var ) {
        echo '税込:' . $this->func_tax( $var ) . '円<br />';
        echo '税率:' . $this->varTax * 100 . '%<br /><br />';
    }
}
$var_class = new taxClass5();
$var_class->func_echo( 100 );
$var_class = new taxClass7();
$var_class->func_echo( 100 );
?>

↓↓↓出力結果↓↓↓

税込:105円
税率:5%

税込:107円
税率:7%

スポンサード リンク

カテゴリー: PHP, インターフェイス, オブジェクト指向プログラミング タグ: パーマリンク