[解決済み】PHPのインターフェイスのポイントは何ですか?
2022-04-03 12:56:43
質問
インターフェイス を使用すると、それを実装したクラスのメソッドを定義するコードを作成することができます。しかし、これらのメソッドにコードを追加することはできません。
抽象クラス を使うと、メソッドにコードを追加するのと同時に、同じことができるようになります。
さて、抽象クラスで同じ目的を達成できるのであれば、なぜインターフェースの概念が必要なのでしょうか?
C++からJavaまでのOO理論が関係していて、PHPのOO的なものがベースになっていると聞いたことがあるのですが、どうでしょうか?この概念は、Javaでは有用ですが、PHPでは不要なのでしょうか?抽象クラス内にプレースホルダーを散在させないためのものなのでしょうか?私は何かを見逃しているのでしょうか?
どのように解決するのですか?
インターフェイスの要点は、クラスが複数のインターフェイスを実装することを強制されても、多重継承を許さないという柔軟性を与えることです。 複数のクラスから継承する場合の問題は多岐に渡り ウィキペディア のページによくまとまっています。
インターフェイスは妥協の産物です。 多重継承の問題のほとんどは抽象ベースクラスには当てはまらないので、最近のほとんどの言語は多重継承を無効にしつつ、抽象ベースクラスをインターフェースと呼び、クラスがそれらを好きなだけ実装することを可能にしているのです。
関連
-
[解決済み】ディレクトリ内のファイル数を数える PHP
-
[解決済み】既に開始されているPHPセッション【重複あり
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] Inversion of Controlとは?
-
[解決済み] インターフェースと抽象クラスの違いは何ですか?
-
[解決済み] インターフェースと抽象クラス(一般的なOO)
-
[解決済み] いつ使うか。Java 8+のインターフェイスのデフォルトメソッドと、抽象的なメソッドの比較
-
[解決済み] Javaインターフェースでスタティックメソッドを定義できないのはなぜですか?
-
[解決済み】TypeScriptのインターフェースと型について
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】SQLSTATE[42000]: 構文エラーまたはアクセス違反が発生しました。1064 SQL 構文にエラーがあります - PHP - PDO [重複]。
-
[解決済み】空の配列要素を削除する
-
[解決済み】php, mysql - データベースへの接続数が多すぎるエラー
-
[解決済み】pdo - 非オブジェクトのメンバー関数prepare()への呼び出し【重複】。
-
[解決済み】PDOException SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリがありません。
-
[解決済み] Forbidden :このサーバーの /phpmyadmin にアクセスする権限がありません。
-
[解決済み] SSLエラー SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました。
-
[解決済み】「インターフェースに合わせたプログラム」とはどういう意味ですか?
-
[解決済み】インターフェイス - ポイントは何ですか?
-
[解決済み] インターフェイスには正しいメソッドを持つ以上のものがあるのか