PHP を使用する場合と?interface
を使用する場合について説明してください。abstract class
abstract class
を に変更するにはどうすればよいですかinterface
?
ベストアンサー1
システムで作業する開発者 (自分自身も含む) に、構築するクラスに一定数のメソッドを実装するように強制する場合は、インターフェースを使用します。
システムで作業する開発者 (自分自身を含む) に一定数のメソッドを実装するように強制し、子クラスの開発に役立つ基本メソッドをいくつか提供したい場合は、抽象クラスを使用します。
覚えておくべきもう 1 つの点は、クライアント クラスは複数のインターフェイスを実装できるのに対し、抽象クラスは 1 つしか拡張できないということです。したがって、抽象クラスで動作コントラクトを定義する場合、各子クラスは 1 つのコントラクトにのみ準拠することになります。ユーザー プログラマーに特定のパスを強制したい場合、これは良いことです。しかし、そうでない場合には、これは良くありません。PHP の Countable および Iterator インターフェイスがインターフェイスではなく抽象クラスだったらどうなるか想像してみてください。
どちらの方向に進むべきか分からないときによくあるアプローチの1つは(クレタス下) は、インターフェースを作成し、抽象クラスにそのインターフェースを実装させることです。