extends
他の既存のクラスに似た変数や関数を有するクラスが必要になることがよ
くあります。実際、全てのプロジェクトで使用可能な一般的なクラスを定
義し、このクラスを特定のプロジェクトの各々の要求に合わせて調整する
というのは、良いやり方です。これを簡単に行うにために、他のクラスを
拡張してクラス作成することが可能です。拡張あるいは派生クラスは、基
底クラスの全ての変数と関数を有します。(これは、実際には誰も亡くなっ
ていませんが、'継承'と呼ばれます) この派生クラスには、派生クラスの
定義で追加したものも含まれます。クラスから定義を取り除く、つまり、
既存の関数や変数を未定義とすることはできません。派生クラスは、常に
単一の基底クラスに依存します。つまり、多重継承は、サポートされてい
ません。クラスは、キーワード'extends'を用いて拡張されます。
この例は、Cart の全ての変数及び関数に加えて変数 $owner と
関数 set_owner() を保持するクラス Named_Cart を定義しています。
この定義により、名前付きの籠を通常の手段で作成し、籠の保有者を
設定したり得たりすることができます。
名前付きの籠で元の籠クラスの関数を使うことも可能です。
"親と子"と呼ばれる関係もあります。ある親クラスを作成し、
この親クラスに基づく新しいクラス、つまり、子クラスを
extendsにより作成します。
この新しい子クラスを使用することやこの子クラスに基づき他の
クラスを作成することが可能です。
注意
クラスは、使用される前に定義されている必要があります!
Cartを拡張した
クラス Named_Cartを作成したい場合、
まず、Cartを定義する必要があります。
クラスNamed_Cartに基づき
Yellow_named_cartという名前の他のクラスを
作成する場合、まずNamed_Cartを定義する
必要があります。まとめると、クラスの定義の順序は、重要です。