広告スペース(バナー)
🐘PHP レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 16 / 68
継承(クラスの拡張)
このレッスンでは、PHPのextendsを使ったクラスの継承を学び、共通の機能を持つクラスを効率よく設計できるようになることを目標にします。「PHP extends 使い方」で調べている方向けの内容です。
extendsを使うと、既存のクラスの機能を引き継いだ新しいクラスを作れます。これを継承と呼びます。「動物」という共通の設計図をもとに、「犬」「猫」のようにそれぞれ独自の鳴き方を追加していく、オブジェクト指向の代表的なテクニックです。
サンプルコードでは、Animalクラスを親としてDogクラスを継承し、speak()メソッドを独自に定義し直しています(オーバーライド)。new Dog("ポチ")で作ったインスタンスは、Animalから引き継いだ$nameプロパティと、Dog独自のspeak()の両方を持っています。
初心者がよくつまずくのが、子クラスで独自の__constructを定義する場合に、親クラスの初期化処理を呼び出すparent::__construct()を書き忘れることです。これを忘れると、親クラスで設定されるはずのプロパティが正しく初期化されません。
継承を使いすぎるとクラス同士の関係が複雑になりすぎることもあるため、設計のバランスが重要になります。大規模なアプリケーションの設計では、継承よりコンポジション(組み合わせ)を優先すべきという考え方も広く知られています。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではPHPを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
広告スペース(バナー)
広告スペース(記事内)