P-9. オブジェクト指向を覚える-2

PHP オブジェクト指向をもっとわかりやすく学ぼう(インターフェース・抽象クラス・トレイト編)

インターフェースとは?

「インターフェース(interface)」とは、「接点」や「接続口」といった意味です。

  • 💻 パソコンでいうと → キーボードやマウス
  • 📱 スマホアプリでいうと → 画面のボタンや入力フォーム
  • 💻 プログラムの中でいうと → 「この機能は必ずある」と決めておく約束事(ルール)

📘 インターフェースの使いどころ

  • このクラスには絶対にこのメソッドがあるよ」とあらかじめ決めておく
  • 処理内容(中身)は書かず、「名前と引数」だけを決めておく
  • ソースコードを見なくても、使い方(仕様)が分かるようにする

✅ 実例で理解してみよう

記述内容を実際にWebサーバに出してみよう!

🧱 抽象クラスとは?

記述内容を実際にWebサーバに出してみよう!

比較項目インターフェース抽象クラス
メソッドの中身書けない(宣言だけ)中身を書いてもOK
プロパティ書けない書ける(変数・関数OK)
継承の仕方implementsextends

抽象クラスを使った例

🧬 インターフェースの多重継承

🧩 トレイト(trait)とは?

トレイトは「機能の部品」

PHPでは「多重継承ができない」ため、クラスの機能を部品として共有するために「トレイト(trait)」を使います。

  • 共通メソッドをまとめたパーツ
  • 必要なクラスで use して取り込む
  • 継承と違って「自由に部品をくっつける」感じ!

トレイトを使ってみよう

記述内容を実際にWebサーバに出してみよう!

課題

☕ 紅茶と珈琲を注ぐプログラムがあります

このコードに、「ミルクをセットする処理」を追加してみましょう!

ファイル名:techup.php

ファイルはこちらです→techup_php_8.zip

📝 ヒント

1.すべてのファイルをローカルにダウンロードして、まずは、実行し表示できるか確認してください。

2.実行時1箇所だけエラーになります。

3.index.phpにある「//※追加」箇所に追加してください。

4.require_onceが知りたい方は、先に「外部ファイルを読み込む」を参考にしてください。

完成したソースファイルをすべてGitHubにPushしてマージリクエストしてレビューをかけてください。

インターフェースを使って「飲み物に共通する処理」を決めよう

クラスごとに中身を変えて実装

ミルクを加える処理は、addMilk()などのメソッドを新しく作ってもOK!

出力は「紅茶にミルクを入れました」「珈琲にミルクを入れました」のように!

実行結果

課題・復習用検索キーワード

検索例
🔍php インターフェース
🔍php echo printf 違い
🔍php require_onceとは