2018/10/12PHPにはクラスの継承という仕組みがあります。あるクラスをベースにして、それを更に拡張したクラスを作る仕組みです。スーパークラス名{}Laravelでもコントローラやモデルで継承の仕組みを利用しています。理解しておくとさらにLaravelの知識が深まると思います。シナリオ継承する基のクラスをスーパークラス(もしくは親クラス)と呼びます。継承して新たに作られるクラスをサブクラス(もしくは子クラス)と呼びます。(abstract)【5】ポリモーフィズムというシナリオで進めていきます。【1】Guitarクラス(スーパークラス)の作成まず、ギタークラスを作成してplayメソッドをつくります。次に先ほど作成したギタークラスをベースにしてサブクラスを作成してみます。"アコースティックギター:";$acoustic->play();Guitarクラスを継承してElectricクラスとAcousticクラスを作成しました。このようにGuitarクラスを継承しているのでplayメソッドを書かなくてもスーパークラスのplayメソッドを利用することができます。出力結果を見てみるとElectricクラスもAcousticクラスも同じスーパークラスのplayメソッドを利用しているので同じ「ジャカジャカジャカ♪」という音色になります。次にスーパークラスのplayメソッドをElectricクラス、Acousticクラスごとに書きかえて(オーバーライド)音色を変えてみます。class)のplayメソッドを書きかえます。これをオーバーライドと言います。"アコースティック:";$acoustic->play();出力結果は以下のようになります。これでクラスごとに音色を変えることができました。」という音色は必要なくなります。playメソッド自体をなくすのではなく、「ギターは演奏するもの」という定義は残しておきたい。いうときに便利なのが抽象クラス・抽象メソッドという考えです。メソッド名();}抽象クラスはインスタンスを生成できません。継承して使用することになります。それでは先ほどのソースコードのスーパークラスを書きかえてみます。抽象メソッドの中身は何も記述しません。【5】ポリモーフィズム作成したソースを確認するとElectricサブクラスとAcousticサブクラスでは同じplayメソッドを実装しています。このようにクラスは異なっても同じ名前のメソッドでいろんな動きを実現させる事をポリモーフィズムと呼びます。日本語では多様性とかに訳されます。PHPの継承については以上になります。気づいたことや新しい発見など情報を発信していきます。コメントをキャンセルメールアドレスが公開されることはありません。honjo_masanoriバナーWebエンジニアとしての就職、転職、フリーランスに関しての情報はコチラ!Laravelが学べるプログラミングスクールに関しての記事をまとめています。ENTRYLaravel6にメール設定(MailGun編)前回、Laravelのログイン機能を自動生成し、各画面を確認しました。ログイン機能を作成しました。/まとめ環境構築PHPフレームワークのひとつであるLaravelを専門に書いている学習サイトです。