クラスとオブジェクト (PHP 5)
日本語版PHP マニュアルトップへ 英語版PHP Manualトップへ

クラスの抽象化

PHP 5 では、抽象クラスとメソッドが導入されました。 abstractとして宣言されたクラスのインスタンスを生成することはできません。 1つ以上の抽象メソッドを含む全てのクラスもまた抽象クラスとなります。 abstractとして定義されたメソッドは、そのメソッドの外観を宣言するのみで、 実装を定義することはできません。

抽象クラスから継承する際、親クラスの宣言で abstract としてマークされた 全てのメソッドは、子クラスで定義されなければなりません。加えて、 これらのメソッドは同等 (あるいはより緩い制約) の 可視性 で定義される必要があります。例えば、抽象メソッドが protected として定義された場合、その関数の実装は protected または public のどちらかとして定義する必要があります。private にすることはできません。

例1 抽象クラスの例

<?php
abstract class AbstractClass
{
    
// 拡張クラスにこのメソッドの定義を強制する
    
abstract protected function getValue();
    abstract protected function 
prefixValue($prefix);

    
// Common method
    
public function printOut() {
        print 
$this->getValue() . "\n";
    }
}

class 
ConcreteClass1 extends AbstractClass
{
    protected function 
getValue() {
        return 
"ConcreteClass1";
    }

    public function 
prefixValue($prefix) {
        return 
"{$prefix}ConcreteClass1";
    }
}

class 
ConcreteClass2 extends AbstractClass
{
    public function 
getValue() {
        return 
"ConcreteClass2";
    }

    public function 
prefixValue($prefix) {
        return 
"{$prefix}ConcreteClass2";
    }
}

$class1 = new ConcreteClass1;
$class1->printOut();
echo 
$class1->prefixValue('FOO_') ."\n";

$class2 = new ConcreteClass2;
$class2->printOut();
echo 
$class2->prefixValue('FOO_') ."\n";
?>

上の例の出力は以下となります。

ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

'abstract'という名前のユーザー定義関数または関数を有さない コードは修正なしに動作します。

PHPメニュー

スポンサー

人材派遣・アルバイト

日本全国の人材派遣会社とアルバイト紹介サイトを集めたディレクトリです。派遣やアルバイトをお探しの方はご参考に。

会社設立

株式会社の設立や電子定款公証を専門とする方の紹介サイト。

風俗営業許可(バー・キャバクラ等)

バーやキャバレー、クラブやスナック、パチンコ店やダーツバー等を始める場合に必要な風俗営業許可を専門に扱うサイトです。

産業廃棄物収集運搬業許可

産業廃棄物を取扱う事業の中でも収集運搬を専門に許可取得代行を行う専門家を紹介するサイトです。建築関係で事業拡大を図りたい場合にご覧下さい。

NPO法人設立・助成金

NPO法人の設立や運営、助成金の申請を専門にするプロ集団です。


クラスとオブジェクト (PHP 5)
日本語版PHP マニュアルトップへ 英語版PHP Manualトップへ