extends

PHP マニュアル
前のページ | 第 14 章 クラスとオブジェクト | 次のページ

# `extends`

他の既存のクラスに似た変数や関数を有するクラスが必要になることがよ くあります。実際、全てのプロジェクトで使用可能な一般的なクラスを定 義し、このクラスを特定のプロジェクトの各々の要求に合わせて調整する というのは、良いやり方です。これを簡単に行うにために、他のクラスを 拡張してクラス作成することが可能です。拡張あるいは派生クラスは、基 底クラスの全ての変数と関数を有します。(これは、実際には誰も亡くなっ ていませんが、'継承'と呼ばれます) この派生クラスには、派生クラスの 定義で追加したものも含まれます。クラスから定義を取り除く、つまり、 既存の関数や変数を未定義とすることはできません。派生クラスは、常に 単一の基底クラスに依存します。つまり、多重継承は、サポートされてい ません。クラスは、キーワード'extends'を用いて拡張されます。

    class Named_Cart extends Cart
    {
        var $owner;

        function set_owner ($name)
        {
            $this->owner = $name;
        }
    }

この例は、Cart の全ての変数及び関数に加えて変数 $owner と 関数 set_owner() を保持するクラス Named_Cart を定義しています。 この定義により、名前付きの籠を通常の手段で作成し、籠の保有者を 設定したり得たりすることができます。 名前付きの籠で元の籠クラスの関数を使うことも可能です。

    $ncart = new Named_Cart;    // 名前付きの籠を作成
    $ncart->set_owner("kris");  // 籠の所有者の名前を設定
    print $ncart->owner;        // 籠の所有者を出力
    $ncart->add_item("10", 1);  // (籠から継承された機能)

"親と子"と呼ばれる関係もあります。ある親クラスを作成し、 この親クラスに基づく新しいクラス、つまり、子クラスを `extends`により作成します。 この新しい子クラスを使用することやこの子クラスに基づき他の クラスを作成することが可能です。

> 注意 クラスは、使用される前に定義されている必要があります! `Cart`を拡張した クラス `Named_Cart`を作成したい場合、 まず、`Cart`を定義する必要があります。 クラス`Named_Cart`に基づき `Yellow_named_cart`という名前の他のクラスを 作成する場合、まず`Named_Cart`を定義する 必要があります。まとめると、クラスの定義の順序は、重要です。

前のページ | ホーム | 次のページ
クラスとオブジェクト | 上に戻る | `コンストラクタ`