1. ホーム
  2. php

[解決済み】PHPのインターフェイスのポイントは何ですか?

2022-04-03 12:56:43

質問

インターフェイス を使用すると、それを実装したクラスのメソッドを定義するコードを作成することができます。しかし、これらのメソッドにコードを追加することはできません。

抽象クラス を使うと、メソッドにコードを追加するのと同時に、同じことができるようになります。

さて、抽象クラスで同じ目的を達成できるのであれば、なぜインターフェースの概念が必要なのでしょうか?

C++からJavaまでのOO理論が関係していて、PHPのOO的なものがベースになっていると聞いたことがあるのですが、どうでしょうか?この概念は、Javaでは有用ですが、PHPでは不要なのでしょうか?抽象クラス内にプレースホルダーを散在させないためのものなのでしょうか?私は何かを見逃しているのでしょうか?

どのように解決するのですか?

インターフェイスの要点は、クラスが複数のインターフェイスを実装することを強制されても、多重継承を許さないという柔軟性を与えることです。 複数のクラスから継承する場合の問題は多岐に渡り ウィキペディア のページによくまとまっています。

インターフェイスは妥協の産物です。 多重継承の問題のほとんどは抽象ベースクラスには当てはまらないので、最近のほとんどの言語は多重継承を無効にしつつ、抽象ベースクラスをインターフェースと呼び、クラスがそれらを好きなだけ実装することを可能にしているのです。